選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

DSA 線性搜尋時間複雜度


有關時間複雜度的通用解釋,請參閱此頁面


線性搜尋時間複雜度

有關時間複雜度的一般性解釋,請訪問此頁面

有關插入排序時間複雜度的更全面、詳細的解釋,請訪問 此頁面

線性搜尋 將每個值與要查詢的值進行比較。如果找到該值,則返回其索引;如果未找到,則返回 -1。

要找出線性搜尋的時間複雜度,讓我們看看在包含 \(n\) 個值的陣列中查詢值所需的比較操作次數。

最佳情況場景是,如果我們正在查詢的值是陣列中的第一個值。在這種情況下,只需一次比較,時間複雜度為 \(O(1)\)。

最壞情況場景是,在不找到目標值的情況下,整個陣列都被搜尋過。在這種情況下,陣列中的所有值都與目標值進行了比較,時間複雜度為 \(O(n)\)。

平均情況場景並不容易確定。找到目標值的可能性有多大?這取決於陣列中的值,對吧?但如果我們假設陣列中的一個值等於目標值,並且該值的位置可以是任意的,那麼線性搜尋所需的平均時間是比最壞情況場景所需時間的一半。

線性搜尋的時間複雜度為 \(O(n)\)。

如果我們繪製線性搜尋在包含 \(n\) 個值的陣列中查詢值所需時間的圖表,我們會得到這個圖:

Time Complexity

線性搜尋模擬

執行不同數量值的陣列的模擬,看看線性搜尋找到 \(n\) 個值陣列中的值需要多少次比較。

{{ this.userX }}

操作次數:{{ operations }}
未找到!

 

正如你在執行線性搜尋模擬時所看到的,如果值很快就被找到,搜尋只需要很少的比較,但如果我們正在尋找的值沒有被找到,那麼就會進行最多的比較。



×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援