二分查詢(C語言實現)

2021-09-25 15:37:59 字數 572 閱讀 6421

二分查詢:前提就是資料必須有序,然後從資料的中間位置開始查起,如果中間值比key小,則從中間值位置開始繼續查詢,反之剛從開頭到中位置查詢,重複以上過程直到結束。

從**實現上來說,既可以用迴圈實現,也可以用遞迴實現。下面將用這兩種方法以c語言實現二分查詢。

遞迴

#include

int_binary_find

(int

* arr,size_t l,size_t r,

int key)

// 引數分別為,陣列首位址,查詢的開始位置,查詢的結束位置,查詢的值

非遞迴

#include

intbinary_find

(int

* arr,size_t len,

int key)

// 引數分別為陣列首位址,陣列的長度,要查詢的值,基本思路與遞迴一樣,就不做注釋說明

return-1

;}

二分查詢C語言實現

二分查詢的簡單實現 include include include define n 20 define n rand 200 int cmp const void a const void b 返回在陣列中位置 int b search int a,int p,int q,int key retu...

C語言實現二分查詢

下面為在陣列a 10 中實現二分查詢的 include includevoid binary search int arr,int right,int k 二分查詢函式 else if mid arr k else if left right printf 找不到!n int main int re...

二分查詢的C語言實現

先預設值一段陣列,再輸入乙個數,用二分查詢法找到這個數再陣列中的位置,並輸出位置,通常使用二分法查詢。下面是示例 查詢二十個數中的某數並輸出位置。include include int search int a,int key 在順序表中折半查詢key的元素,若找到返回元素下標,否則返回0 int ...