二分查找条件: 原理: 取列表中间那个数,小于中间数和大于中间数分别放到lessList和MoreList,和查找的数比较,如果大于则用递归算法对MoreList进行调用,小于则走lessList,找到就返回
思想:分而治之
1.列表为有序列表
时间复杂度为 O(log2n)
m = log2n -> m推算=有m个2相乘等于n
快速排序
思想:分而治之
原理: 对数组取一个值,作为基准值,大的数放MoreList,小的数放lessList,并对MoreList和lessList进行递归调用。
基线条件 当数组的长度小于2
理想情况就是 分到不能再分,也就是list变为1,那么要执行 n / 2^m = 1,m为次数,n为数量,那么m = log2n
而分一次,进行插入操作进行n次
所以整体时间复杂度就是O(n*log2n)