二分(折半)查詢演算法練習

2021-10-01 16:25:10 字數 651 閱讀 8902

二分(折半)查詢演算法練習

time limit: 1000 ms memory limit: 32768 k

total submit: 404 (216 users) total accepted: 230 (211 users) special judge: no

description

在乙個有序表中利用二分法查詢某個關鍵字是否存在。

input

輸入為多組資料,每組為兩行資料,每組中第一行為建立查詢的順序表,第二行是要查詢的關鍵字。

output

若找到關鍵字,則輸出關鍵字在表中的位置,否則輸出0.

sample input

1 2 3 4 5

1 2 3 4 5

sample output

0

#include#includetypedef int elep;

#define maxn 1005

struct sq

;void insert(sq &l,int x)

sq start()

int binarysearch(sq l ,int n, int key)else

} return 0;

}int main()

}}

二分(折半)查詢演算法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。折半查詢的演算法思想是將數列按有序化 遞增或遞減 排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。折半查詢是一種高效...

查詢演算法 二分(折半)查詢

基本思想 待查記錄的順序為從小到大 首先將待查元素的關鍵字 key 值與待查記錄中間位置上上 下標為mid 記錄的關鍵字進行比較,若相等,則查詢成功 若 key r mid key,則說明待查記錄只可能在後半部分 mid 1,n 1 中,下一步應在後半部分中查詢 若key timid key,說明待...

二分 折半 查詢

折半查詢 又叫二分查詢,採用分治思想,適用於不經常變動且查詢頻繁的表 演算法思想 將n個元素 假設n個元素公升序 分為大致相同的兩部分,取data n 2 與目標元素m比較 若data n 2 m return n 2 若data n 2 m 則我們只要在data的左半部分繼續查詢 若data n ...