二分查找-C语言
程序员文章站
2024-03-17 14:47:46
...
- 代码实现
#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,说明没找到