/*
*折半查找要求数组必须是有序的
*这里假设数组是递增有序的,若成功返回记录的下标
*失败则返回 -1
*/
#include<stdio.h>
int BInSearch(int *a,int len,int searchNum);
int main(void)
{
int a[10]={12,13,15,35,67,87,686,839,3336,33397};
int index = BInSearch(a,10, 686);
printf("The searcheNum index is %d\n",index);
return 0;
}
int BInSearch(int *a,int len,int searchNum)
{
//假若数组10个元素,下标从0开始,low=0,high=9;
int low=0,high=len-1,mid=0;
//这是查找的临界条件
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==searchNum)
return mid;
if(a[mid]>searchNum)
high=mid-1;
else
low=mid+1;
}
return -1;
}
(查找)用C语言实现的折半查找
最新推荐文章于 2022-11-03 20:44:43 发布