二進制搜索與線性搜索
線性搜索,也稱序貫搜索是最簡單的搜索算法。它通過檢查列表中的每個元素來搜索列表中的指定值。二進制搜索也是一種方法,用於在排序列表中定位指定的值。二進制搜索方法將檢查的元素數減半(在每次迭代中),減少了在列表中找到給定項目所需的時間。
什麼是線性搜索?
線性搜索是最簡單的搜索方法,它按順序檢查列表中的每個元素,直到找到指定的元素。線性搜索方法的輸入是一個序列(例如數組、集合或字符串)和需要搜索的項。如果指定項在提供的序列中,則輸出為true;如果指定項不在序列中,則輸出為false。因為這個方**檢查列表中的每個項目,直到找到指定的項目為止,在最壞的情況下,它會在找到所需元素之前遍歷列表中的所有元素。線性搜索的複雜度為o(n)。因此,當搜索大列表中的元素時,它被認為太慢而無法使用。但這是非常簡單和容易實現的。
什麼是二進制搜索?
二進制搜索也是一種用於在排序列表中查找指定項的方法。此方法首先將搜索到的元素與列表中間的元素進行比較。如果比較確定兩個元素相等,則方法停止並返回元素的位置。如果搜索到的元素大於中間元素,則它只使用排序列表的下半部分再次啟動該方法。如果搜索到的元素小於中間元素,它將僅使用排序列表的上半部分再次啟動該方法。如果搜索到的元素不在列表中,則該方法將返回一個唯一的值,該值指示。因此,根據比較的結果,二進制搜索方法(在每次迭代中)將比較的元素數量減半。因此,二進制搜索以對數時間運行,結果是o(logn)的平均情況性能。
二元搜索和線性搜索有什麼區別?