1. 程式人生 > >數據結構與算法之二分查找

數據結構與算法之二分查找

第一章 二分 找不到 問題解決 如果 但我 nbsp 第一個 com

問題:如果有一個有100個元素的已經排好序的數組,然後給你一個數,讓你判斷這個數組裏面是否有這個數,你該怎樣去做?

最簡單的方法就是從數組的第一個元素開始,逐一與所給的數比較,直到比較完所有數組的元素為止,這種查找方法叫簡單查找,是一個費事的方法。但我們想,既然這100個數都已經排好序了,那麽我先拿中位數與所給數比較,如果兩者匹配則問題解決。如果中位數比所給數大,那麽所給數可能存在與中位數左邊,我們就可以拿左邊那些數的中位數與所給數比較;如果中位數比所給數小,那麽所給數可能存在與中位數的右邊,我們拿右邊那一堆數的中位數與所給數比較。按照上述步驟,如果比較到最後一個數都找不到與所給數相同的數,那麽所給數不存在與數組中。這種查找的方法叫二分查找法。

python代碼示例:

技術分享圖片

測試:

技術分享圖片

具體參考:

《圖解算法》第一章

——————本篇完!

數據結構與算法之二分查找