1、二分查找
二分查找
1、时间复杂度

https://www.cnblogs.com/yellowgg/p/11272908.html
2、一些总结
算法的速度指的并非时间,而是操作数的增速。
谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
算法的运行时间用大O表示法表示。
O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多。
二分查找的速度比简单查找快得多。
O(log n)比O(n)快。需要搜索的元素越多,前者比后者就快得越多。
算法运行时间并不以秒为单位。
算法运行时间是从其增速的角度度量的。
算法运行时间用大O表示法表示。
3、代码示例
def binary_search(number,num): count = 1 low,high = 0,len(number) mid = int((low+high) / 2) while (low <= high): if num > number[mid]: low = mid + 1 elif num < number[mid]: high = mid - 1 else: return count,number[mid] mid = int((low + high) / 2) count += 1 return None if __name__ == '__main__': number = [item for item in range(10**7)] num = input("enter you want to guess the number:") if binary_search(number,int(num))[1]: print("猜对了 经过%s次猜测%s在序列中" % (binary_search(number,int(num))[0],int(num))) else: print("猜错了 %s不在序列中" % int(num))
4、应用场景
当数据有序时,二分查找能够提高检索效率。

浙公网安备 33010602011771号