一, 演算法之 二分查詢

2021-08-28 00:21:10 字數 645 閱讀 4566

上半年看了一點演算法的內容, 做點筆記.

演算法是 一組完成任務的指令. (任何daim**片段都可視為演算法.)

二分查詢,其實我們生活中可能已經接觸過,只不過不知道它的演算法名稱而已. 記得上學那會查英漢字典,但遇見乙個不認識的單詞的時候, 我們去查詢英語單詞時, 首先會根據英語單詞的首字母,猜測它在字典的上半部分還是下半部分, 這麼粗略的猜測, 其實就已經使用了二分查詢.

二分查詢, 還有乙個hend很典型的遊戲場景. 乙個人 甲 想乙個1~100的數字, 另乙個人 乙 一定可以在7步之內找到這個數字.

具體步驟:

1, 乙  猜 50 ,  甲 告知 50 是猜測的大了 還是 小了 .

2, 小了,  排除了一半的數字,  乙 猜測 75, 甲 告知75 是猜測的大了 還是 小了

3, 大了, 剩下的數字又排除一半, 每次都猜測的都是中間數字,從而每次都可以排除一半的數字. 接下來 乙猜測 63.

.................不管猜測的shi是哪乙個數字, 都會在7次之內猜測到,每次猜測都會排除很多數字.

以上說明顯示如果想要使用二分查詢, 必須是一組有序的組合. 

一般用大o表示法 討論演算法的執行時間. log n, 在演算法中一般表示以2 為底. 

二分查詢查詢法的 執行時間 表示為o(logn)

查詢演算法 一 之二分查詢

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後兩個子表,...

演算法之二分查詢

總時間限制 1000ms 記憶體限制 65536kb 描述在乙個非降序列中,查詢與給定值最接近的元素。輸入第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數...

演算法之二分查詢

二分查詢演算法是運用分治策略的典型例子。給定一組已經排好序的n個元素a n 從這n個元素中找到乙個特定元素x。基本思想 將n 個元素劃分成個數大致相同的兩部分,取中間元素a n 2 與x進行比較 如果x a n 2 即找到x,演算法終止 如果x如果x a n 2 則只在陣列a的右半部分繼續查詢x。c...