1.二分法與逐個比較

二分查找法好比在1到100之間猜數,我們可以從1到99一個個的猜,這是最笨的方法。因為當我心里想的那個數是99的時候,需要猜99次才能得到答案,時間復雜度比較高。好比如下:

下面是對半猜數:


因此,對於包含n個元素的列表,二分查找法最多需要log2(n)步。而一個個查找的話需要n步。
需要注意的是,僅當列表是有序的時候,這樣的查找才是有意義的。
以下是針對 python 2 版本:

2.運行時間
針對逐個查找發來說,如果序列長度為100,那么查找次數最多需要100次。如果列表包含40億個,那么查找次數最多需要40億次,像這樣,最大查找次數與序列長度相同,這樣成為線性時間(lnear time)。
二分查找法則不同,序列長度為100次的元素,最多需要猜log2(100) 為7次,如果列表包含40億次,最多需要查找32次。

