折半查詢 分治法

2021-10-25 07:37:11 字數 771 閱讀 2371

#include

/*分治策略

設a[low...high]是當前的查詢區間,首先確定該區間的中點位置mid=[(low+high)/2];然後將待查的k值與

a[mid].key比較

1.若k=a[mid],則查詢成功並返回該元素的物理下標

2.若ka[mid],則要查詢的k必定位於右子表a[mid+1...high]中,即新的查詢區間是右子表

*/int

binsearch

(int a,

int low,

int high,

int k)

;//折半查詢演算法

intmain()

; i =

binsearch

(a,0

, n-

1, k);if

(i >=0)

printf

("a[%d]=%d\n"

, i, k)

;else

printf

("未找到%d元素\n"

分治演算法 折半查詢法

二分查詢演算法根據邊界情況不同,一般可分為兩種情況,一中是左閉右開區間,類似於 left,right 一種是左閉右閉區間,在非遞迴二分中,必須遵守一定的區間規則,否則會造成程式錯誤,即區間不能夠重複。思路 假設目標值在閉區間 l,r 中,每次將區間長度縮小一半,當l r時,我們就找到了目標值。題目描...

折半查詢法

折半查詢法 include include int binsearch int x,int v,int n return 1 int main scanf d x scanf d n x 2 n 7 position binsearch x,v,n 呼叫函式時,不要再引數的型別,陣列v,用v代替就好...

折半查詢法

輸出檔案 輸出檔案 half.in half.out 大魔導師培根曾經說過 讀史使人明智,讀詩使人聰慧,演算使人精密,哲理使人深刻,倫理學使人有修養,邏輯修辭使人善辯。由此可見書籍的重要性是不言而喻的。而與書籍天天打交道的圖書管理員,更是奪天地之造化,吸日月之精華的 神之職業 據史料記載,魔法世界從...