编写利用折半查找法从整型数组中检索指定数值的函数,若找到则返回该数值在数组中的位置。(见补充)
编写利用折半查找方法,从整型数组中检索指定数值的函数,若找到则返回该数值在数组中的位置,否则输出没有找到信息。假设数组元素从小到大有序。...
编写利用折半查找方法,从整型数组中检索指定数值的函数,若找到则返回该数值在数组中的位置,否则输出没有找到信息。假设数组元素从小到大有序。
展开
2个回答
展开全部
/*
找到了10在数组中的索引是8。
Press any key to continue
*/
#include <stdio.h>
int Find(int a[], int n, int num) {
int low = 0,mid,high = n - 1;
while(low <= high) {
mid = (low + high)/2;
if(a[mid] == num) return mid;
if(a[mid] > num) high = mid - 1;
else low = mid + 1;
}
return -1;
}
int main() {
int a[] = {1,2,4,5,6,7,8,9,10,12,13,25,36,47,58,69};
int res,n = sizeof(a)/sizeof(a[0]);
res = Find(a,n,10);
if(res >= 0) printf("找到了%d在数组中的索引是%d。\n",10,res);
else printf("对不起,没有找到数值是%d的元素。\n");
return 0;
}
更多追问追答
追问
请问能不能做到任意输入一串数字,然后随便由用户输入一个数,通过运行程序告诉用户该数字位置呢?
请问能不能做到任意输入一串数字,然后随便由用户输入一个数,通过运行程序告诉用户该数字位置呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询