![](/img/trans.png)
[英]python binary search with a function in a domain and limited iterations
[英]Python Binary Search (Maximum number of iterations)
我在python中搜索二進制搜索,我發現了這個: http : //openbookproject.net/thinkcs/python/english3e/list_algorithms.html
它說最大的一般關系。 迭代次數(與Probe right相同?)和N(list的大小)由N = 2^k -1
,其中k是最大迭代次數。
但是從我的理解來看,一般關系不應該是N = 2^k
每次搜索之后,我們將列表除以2,直到達到1。
因此,最大迭代次數是log2 N
而不是log2 (N+1)
我用谷歌搜索了這個,我發現一個網站支持我的答案,但沒有太多解釋。 (鏈接到這里: http : //codingexplained.com/coding/theory/binary-search-algorithm )
有人可以解釋它背后的數學嗎? 謝謝。
設P(n)
為n
元素所需的探針數。 然后我們可以寫下面的等式:
P(0) = 0
P(n) = 1 + P((n-1)/2)
說明:首先我們沒有元素 - 無所事事。 然后我們進行1次探測,我們留下了(n-1)/2
元素(因為我們剛檢查它們,所以我們扔了1個)所以我們需要做更多的P((n-1)/2)
。
來自該等式的P(n)
的結果將是floor(lg(n+1))
。 你可以在一些例子(如n = 6和n = 7)上檢查它,或者你可以閱讀如何解決遞歸方程
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.