C語言 折半查詢(二分查詢)演算法

2021-08-19 21:06:24 字數 624 閱讀 2229

·什麼是折半查詢

·當我們在一堆有序陣列中間查詢乙個數的時候,先將中間的數與查詢數進行比較。如果中間數大於我們要查詢的數,則在中間左半邊進行查詢;同樣的,如果中間數小於我們要查詢的數,則在中間往右半邊再次進行查詢。重複以上的過程,直到滿足,如果不滿足,則查詢失敗。

·條件:元素必須按照大小有序排列。

·那我們實現的思路是什麼呢?我們定義三個變數,分別指向這個陣列的最左邊以及最右邊還有中間,將中間的數與查詢數進行比較。根據情況縮減範圍,即改變左邊或者右邊變數的值,再次進行比較。過程如下圖所示:

}·當縮減範圍的時候並不是把mid的值賦給left或者right,因為mid已經比較過了,所以我們把mid進行--或者++處理。

·我們函式返回的int值即為所要查詢的數在陣列中的位置

C語言折半查詢(二分查詢)

定義 對使用者輸入的數是否在已經按順序定義好的一組數上進行查詢 思想 定義好的一組數必須按順序排序,一般從小到大排序 將一組數分為兩個部分 low指第乙個數,mid指中間乙個數,high指第最後乙個數 把查詢數n與mid比較 如果n mid,說明在mid右側,low的位置發生改變,除去當時low本身...

c語言 二分查詢(折半查詢)

a 你的新鞋子好炫酷,多少錢買的呀?b 在100 300之間,你猜一下咯,每次我只告訴你猜大了還是猜小了,直到你猜對為止,看看你能不能很快猜出來。a 小夥伴在生活中有沒有和好朋友玩過類似的遊戲呢,不知道接下來你會選擇何種方式去猜呢?如果從100開始乙個乙個往後試,就顯得稍稍有點無腦了,每次猜測的時候...

用c語言折半查詢演算法(二分查詢)

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好,占用系統記憶體較少 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位...