2011-09-04 106 views

回答

4

只需從第一個位置開始;現在考慮搜索的數字m ;之間的差異,如果array[0] == m那麼我們完成;否則我們必須跳abs(array[0] - m)職位;現在重複這個直到數組結束。

但是,我們不能比爲O(n)做的更好最壞的情況下,只考慮這種情況下,我們要找出11:

10 9 8 9 8 9 10 9 8 9 8 9 10 9 8 9 8 9 10 9 8 9 8 9 
+0

「否則」和「職位」之間的部分不具有語法意義。你可以嘗試修復嗎? – Svante

2

這裏有一個簡單的想法,應該可以幫助您思考問題。

如果您正在尋找xabs(x-array[0]) == k,那麼你不妨跳轉到array[k]

想想這個,你會得到你的算法。

現在,請考慮此算法的最壞情況。你能做到這一點,所以大多數條目必須檢查? (提示:是)