Chapter 1——准备篇
一、复杂度
复杂度O(n)
时间复杂度 | 级别 |
---|---|
1000000 | 一般 |
10000000 | 勉强 |
100000000 | 紧张 |
二、一些简单算法
1、穷竭搜索(暴力搜索)
即枚举所有可能的结果,然后进行搜索
2、二分搜索 O(n3logn)
二分搜索,即先对比x与k/2,若小,则在前半段部分,若大,则在后半段部分,再继续进行比较
每次将区间缩小为一半,要判断k中包含x,则只需要判断log2n次
原n2复杂度,只需要nlogn次
在多重循环中,例如4重循环,只需要将其中一层循环所得到的可能的结果先排序,然后再进行二分查找
a+b+c+d=m , d=m-a-b-c 则d可先排序再进行二分查找
二分搜索变形 n2logn
依然在多重循环中,若n3logn还是无法解决,进行排序之后再次使用二分搜索算法
例如上题中,可在继续进行检查:
c+d=m-a-a 则先枚举出c+d的结果,再进行二分查找