不爱吃鸭脖 不爱吃鸭脖
首页
Java
算法
k8s
日常
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

不爱吃鸭脖

小学生
首页
Java
算法
k8s
日常
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 刷题笔记

    • 刷题笔记
      • 由数据范围反推算法复杂度和算法内容
      • 分析代码复杂度
    • 代码随想录
  • 算法
  • 刷题笔记
jinhua
2023-06-14
目录

刷题笔记

# 算法刷题笔记

# 由数据范围反推算法复杂度和算法内容

  • 当n特别小,n <= 30, 一般都直接暴搜就可以了,指数级别,常用dfs + 剪枝,状态压缩dp
  • n <= 100 , O(n^3), floyd, dp
  • n <= 1000, O(n^2), O(n^2 * logn),dp,二分
  • n <= 10^5, O(n * logn),各种排序,堆,二分
  • n <= 10^6, O(n), 以及常数较小的O(nlogn)算法,hash,双指针扫描,kmp,
  • n <= 10^7, 只能O(n)的算法来做,双指针,kmp
  • n <= 10^9, O(根号n)
  • n <= 10 ^ 18,O(logn)

# 分析代码复杂度

  • 看循环
  • 递归,算法复杂度的话,可以参考主定理 (opens new window)
    • 快排,每次排序需要O(n)的复杂度,但总共需要O(logn)次,所以总复杂度O(nlogn)
    • 二分,看总共比较几次,O(logn)
  • 双指针算法,内循环指针只增不减,O(n)
  • 单调栈,类似于双指针,O(n)
  • kmp,O(m + n)
  • 并查集,加上路径压缩,O(logn)
  • 堆,O(nlogn)
  • 全排列,O(n!*n)
  • 深度优先遍历。宽度优先遍历,就是遍历一下所有的点+边,时间复杂度O(n + m)
  • spfa,匈牙利算法,最大流 理论复杂度比较高,但是实际运行效果非常好
  • log2(10^x) 约等于 3x
  • 动态规划,一共的状态数 * 没事状态的计算量
代码随想录

代码随想录→

最近更新
01
实习技术
08-24
02
sql
07-28
03
git命令
07-26
更多文章>
Theme by Vdoing | Copyright © 2019-2023 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式