一, 演算法之 二分查詢
阿新 • • 發佈:2018-12-09
上半年看了一點演算法的內容, 做點筆記.
演算法是 一組完成任務的指令. (任何daim程式碼片段都可視為演算法.)
二分查詢,其實我們生活中可能已經接觸過,只不過不知道它的演算法名稱而已. 記得上學那會查英漢字典,但遇見一個不認識的單詞的時候, 我們去查詢英語單詞時, 首先會根據英語單詞的首字母,猜測它在字典的上半部分還是下半部分, 這麼粗略的猜測, 其實就已經使用了二分查詢.
二分查詢, 還有一個hend很典型的遊戲場景. 一個人 甲 想一個1~100的數字, 另一個人 乙 一定可以在7步之內找到這個數字.
具體步驟:
1, 乙 猜 50 , 甲 告知 50 是猜測的大了 還是 小了 .
2, 小了, 排除了一半的數字, 乙 猜測 75, 甲 告知75 是猜測的大了 還是 小了
3, 大了, 剩下的數字又排除一半, 每次都猜測的都是中間數字,從而每次都可以排除一半的數字. 接下來 乙猜測 63.
.................不管猜測的shi是哪一個數字, 都會在7次之內猜測到,每次猜測都會排除很多數字.
以上說明顯示如果想要使用二分查詢, 必須是一組有序的組合.
一般用大O表示法 討論演算法的執行時間. log n, 在演算法中一般表示以2 為底.
二分查詢查詢法的 執行時間 表示為O(logn)