二分查找的代码:
二分查找的时间复杂度:
最坏的情况:
就是找不到和查找区间只剩一个值的时候,这两种都是最坏的结果,假设查找了x次,达到了最坏的结果:
N代表每一次折半区间数据的个数:
起始: N
第一次:N/2
第二次:N/2/2
第三次:N/2/2/2
.....
最后一次(第x次):N/2/2/2/2/2/2=1
因为最坏情况就是找不到和查找区间只剩一个值的时候,所以此时数据的个数就为1。
由图可知:查找了多少次,就除了几次2
所以x=log以2为底N的对数,简写成logN,在复杂度里面只有以2为底的可以简写,但是和数学里的lgN,没有任何的联系!
综上所述:二分查找的时间复杂度为O(lgN)。