二分(折半)查詢演算法練習
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 ...