iOS菜逼學算法(一)二分查找

最近忙著刷題之余,結合自己的一些demo體會到算法的重要性,優勢

二分查找原理

我相信很多人都會用百度和Google,就不詳細講了。

二分,字面意思就是對半分找東西,一直這么下去。

例:

有10個數(0 - 9)順序排列(二分查找的關鍵);左右區分


第一次二分

左邊-> 0,1,2,3,4

右邊-> 5,6,7,8,9

需要查找8的位置,10個數的中間就是5了,判斷下是不是中間數;重點來了->比較查找數和中間數大小,就可以判斷是在左還是右,結果再右邊。


第二次二分

左邊-> 5,6 (NO)

中間 =7(NO)

右邊-> 8,9(YES)

按照第一次二分的原理,還是右邊


第三次二分已經沒啥必要了(怎么分?)

都寫了相信的注釋...

為啥結束位置-1?我們需要的是下標,不是個數

中間下標不要擔心小數點...(腦殼短路的,直接百度,或者看下數組objectAtIndex)

這里有中文注釋->看不懂打我啊

重點:判斷左右....然后二分下標;沒懂的多看幾遍,還沒懂的來打我。

說了一段原理,代碼也上了,最后來個測試,不說百萬級數據我們來個差不多的測試下


100000個數的查找時間對比

demo https://github.com/xiongq/binarySearch-demo.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容