二分查詢-C語言
阿新 • • 發佈:2018-11-04
- 程式碼實現
#include <stdio.h>
//因為data[0]中存的是要查詢的數,所以如果返回值為0,說明沒找到
int BinarySearch(int data[],int length)
{
int left=1;
int right=length;
while(left<=right)
{
int mid=(left+right)/2;
if(data[mid]<data[0]){
left=mid+1;
}
else if(data[mid]==data[0]){
return mid;
}
else
{
right=mid-1;
}
}
return 0;
}
int main(int argc, char** argv) {
int data[14]={45,5,16,39,45,51,98,100,202,226,321,368,444,501};
printf("要查詢的數的位置是:%d\n",BinarySearch(data,13));
return 0;
}
- 執行結果
因為data[0]存放的是要查詢的數,所以
- 如果結果非0,說明查詢成功
- 如果結果為0,說明沒找到