<演算法圖鑑>心得筆記-第三章

IgorChien
2 min readSep 10, 2020

--

前言

閱讀學習後紀錄下來,以增加自己的記憶及分享學習心得。

線性搜尋

從陣列中搜尋數據的演算法,依序從陣列前端開始往後查詢數據。簡單說就是「從頭到尾一個一個找」。

Linear Search
使用線性搜尋的執行時間因為線性搜尋是從頭依序比較,當數據量大且目標數據在陣列的後方,或目標數據不存在時,比較的次數就會變多,而且耗費時間。當數據量為n時,執行時間為 O(n)。

二元搜尋

從陣列中搜尋數據的演算法,只適用於數據已排序完成的情況。將陣列正中央的數據與目標數據進行比較,判斷目標數據在中心數據的左邊或右邊。比較一次就縮小一半的搜尋範圍。類似終極密碼這種遊戲。

Binary Search
使用二元搜尋的執行時間二元搜尋是使用排序過的陣列,可以讓每次搜尋的範圍減半,直到搜尋範圍只剩一個數據時結束搜尋。假設數據為n個,反覆進行每次減半的操作 ㏒₂n次後,數據剩下一個。所以二元搜尋進行  ㏒₂n次「和陣列正中央的數比較,使搜尋範圍減半」的操作後,就能搜尋到目標數(若目標數不存在,也能得出該數不存在的結論)。所以執行時間是 O(㏒n)。

--

--

IgorChien

Genius is one per cent inspiration, ninety-nine per cent perspiration.學無止盡