C语言,二分法查找无序的一维数组中的一个元素,输出其位置
2个回答
展开全部
如果是无序的,需要排序
#include <stdio.h>
int binSearch(int, int, int);
main()
{
int i, n = 10, x = 7;
int a[10];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
//排序略
binSearch(x,a,n));
return 0;
}
int binSearch(int x, int a[], int n)
{
int low, high, mid;
low = 0;
high = n-1;
while(low <= high)
{
mid = (low + high) / 2;
if(x < a[mid])
high = mid - 1;
else if(x > a[mid])
low = mid + 1;
else
return mid;
}
return -1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询