二分查詢(C語言描述)

2021-08-09 17:37:59 字數 632 閱讀 7140

二分查詢是比較簡單的一種搜尋方式,但是它必須基於乙個已排序的陣列,換句話說的話,也就是二分查詢是需要乙個比較來判斷是往哪一方縮小查詢區間:

建議查詢益於比較的資料:例如數字

**上:

/*對分查詢*/

#includeint binarysearch(const int a, int x, int n );//定義對分查詢函式 函式的引數為(元素陣列, 查詢的元素, 陣列的長度 )

int main()

;//自定義的乙個陣列

int b = binarysearch( a, 5, 7);//呼叫對分查詢函式

printf("%d\n", b);//列印出該元素在陣列的位置

return 0;

}int binarysearch(const int a, int x, int n )//對分查詢函式

else if( a[mid] > x)

else

return mid; /*found*/

} return -1; /*not found*/

}

注意要點:縮小查詢區間時,向右側縮小時,low = mid + 1;向左側縮小時,high = mid - 1;

C語言 二分查詢

二分查詢有序陣列中查詢具體某個數 條件 陣列為有序陣列 公升序或降序 查詢的思想 在有序陣列中查詢具體某個數,如果有,輸出該數所對應的下標 如果沒有,輸出未找到.具體思想 若為公升序排列的陣列,取陣列中間元素與待查詢的數比較,若待查詢的數小於中間元素,則在陣列左半部分查詢 若待查詢的數大於中間元素,...

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

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

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

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