算法三大特性:
- 有穷性
- 确定性
- 可行性
评判标准:
- 正确性
- 可读性
- 健壮性
- 效率和存储量要求
表示时间复杂度的价:
\(O(1)\):常数时间价
\(O(n)\):线性时间价
\(O(log_n)\):对数时间价
\(O(nlog_n)\):线性对数时间价
\(O(n^k)\):\(k\) 次方时间价
\(O(1)<O(log_n)<O(n)<O(nlog_n)<O(n^k)\)
\(2^{10}=1024\)
- \(n\le 20\) \(O(2^n)\)
- \(20<n\le 100\) \(O(n^3)\)
- \(100<n\le 1000\) \(O(n^2)\)
- \(10000 < n\le 10^5\) \(O(nlog_n)\)
- \(10^5<n\le\) 10^6 \(O(n)\)
- \(n>10^8\) \(O(logn)\)