作业帮 > 综合 > 作业

用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/13 19:27:04
用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9
用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9
int Lookup(int find,int array[],int low,int high)
{
if (low > high)
return -1;//表示未找到元素
int mid = (low + high)/2
if (array[mid] == find)
return mid;//找到元素,元素的位置为mid
if (array[mid] > find)//如果大于要找的值则在下半区间继续找
return Lookup(find,array,low,mid - 1);
else //如果小于要找的值则在上半区间继续找
return Lookup(find,array,mid + 1,high);
}
void main()
{
//序列应该基本有序才能使用二分法
int a[10] = {0,1,2,3,4,5,6,7,8,9};
//序列对应的位置值
int position[10] = {8,3,0,1,7,9,2,6,5,4};
int pos = Lookup(9, a, 0, 9);
if (pos == -1)
{
printf("There is not 9 in the array");
return;
}
//输出映射的位置
printf("The position of 9 in the array is %d",position[pos]);
}