Big O 表示法
衡量一个算法的优劣用时间复杂度和空间复杂度,
时间复杂度不是比较相对的时间长短,而是比较绝对的操作次数。
- O(1)为常数复杂度,简单的运算属于这类
- O(logn)接近常数,默认都是log2为底,如二分法,128次二分要7次操作
- O(n^k),k=1时为线性复杂度,简单排序为 k=2,快速排序为O(nlogn)
- O(n!),此种算法不甚理想,如路径规划,只能组合,至今没有更好的方法
- O(K^n),指数次方,一般不可接受,但往往又是直观想到的,如米国总统竞选问题 生活中一般问题都没有算法可言
附:很多算法只有数据经过排序后才有用,如二分查找