[音樂播放] DOUG LLOYD:線性 搜索是一種算法,我們 可用來查找在數組中的元素。 算法召回 是一步一步的設置 的用於完成任務的指令。 線性搜索 算法的工作方式如下。 跨越陣列迭代從左 沒錯,找指定的元素。 在偽代碼中,這是一個更 蒸餾版本的這句話, 如果第一元件是什麼 你要尋找的,可以停止。 否則,移動到下一個元件和 繼續下去,一遍又一遍,直到找到 元素,或者你沒有。 因此,我們可以用線性 搜索算法,例如, 找到目標值 九裡這陣。 好了,我們從頭開始。 如果這就是我們 尋找,我們可以停止。 這不是,我們不是在尋找11。 所以否則,移動到下一個元素。 所以,我們就來看看23。 23,我們在尋找什麼? 哦,不,所以我們就移動到下一個 元件,並且下一個元素, 我們繼續經歷 這個過程中一遍又一遍 以上,直到我們的土地 在這樣的情況下。 九是我們要找的, 和該陣列的這些元素 是,它的值是9。 因此,我們找到了我們 尋找,我們可以停下來。 線性搜索有 完成後,成功。 但有關,如果我們要尋找什麼 一個元素,這不是在我們的數組。 是否線性搜索仍然有效? 那麼肯定。 因此,我們重複這個過程 起始於第一元件。 如果這就是我們 尋找,我們可以停止。 它不是。 否則,我們進入下一個元素。 但是我們可以不斷的重複這個過程, 檢查反過來每個元素, 希望我們找到了50號。 但我們不會知道 我們已經找到了50號 或者,如果我們沒有,直到我們已經加強 在陣列上的每一個元素。 只有當我們已經做了 這並拿出短, 我們可以得出結論: 50不數組中。 這樣一來,線性搜索 算法,那麼它失敗了,本身。 但不是在某種意義上說,它 是不成功的在做什麼 我們要求它做的事情。 這是不成功的作為 就像它沒有找到50, 但50並沒有到數組中。 但是,我們已經徹底搜查 通過每一個元素 所以,雖然我們沒有發現 任何事情,線性搜索仍 成功,即使 元素不是陣列中。 那麼什麼是最壞的情況下 方案與線性搜索? 那麼我們來看看通過 每一個元件, 要么是因為目標元素 是陣列的最後一個元素, 或者我們正在尋找的元素不 實際存在陣列中的。 什麼是最好的情況? 嗯,我們可能會發現 元素立刻。 有多少元素和 我們接著來看看 在最好的情況下, 如果我們尋找它 我們發現它在開始的時候? 我們可以立即停止。 這是什麼說的 線性搜索的複雜性? 井在最壞的情況下,我們有 看看每一個元素。 而且使其在鄰 N,在最壞的情況下。 在最好的情況下,我們要 馬上找到的元素。 等運行在1歐米加。 我是道格·勞埃德。 這是CS50。