我學習了我的考試和學習搜索算法。我瞭解線性,二進制和內插搜索,現在嘗試瞭解指數搜索。但是互聯網上有不好的來源,如果有解釋對我來說很複雜..我希望你能澄清算法?理解指數搜索的工作原理
編輯(tryd改正我的錯誤):
所以我們可以說,我們有數組,我們在數組中搜索19
:
Index i 0 1 2 3 4 5 6
2 7 13 19 55 92 99
我們首先嚐試尋找範圍(在這點我們把數組)
2^0 : i=1: A[1] > 19
2^1 : i=2: A[2] > 19
2^2 : i=4: A[4] < 19
現在我們知道,我們需要從搜索索引i=0
到i=3
。
現在我們使用二進制搜索找到的元素19
當前的子陣,我們已經是我們中間劃分
Index i 0 1 2 3
2 7 13 19
二進制搜索,所以我們有數組
13 19
現在再劃分中間。 19
大於13
而19
現在只是數組中的元素。我們完成了,我們找到19
現在是否正確?
因此,我正確地做了第一步(找到範圍),對不對?當找到範圍時,我會像你說的那樣使用二進制搜索(這意味着我將子陣列分成中間等等......對吧?)。 – roblind
不,你做了同樣的步驟(增加我) - 2,2,2,但指數搜索需要1,2,4,8 ... – MBo
Tyvm我嘗試糾正它? – roblind