黑马程序员技术交流社区
标题:
折半查找代码实现
[打印本页]
作者:
木冉
时间:
2015-11-16 11:21
标题:
折半查找代码实现
最终想实现如果没有查找到该数,则“输出未能查找到该数”,没有成功
//折半查找代码实现
#include <stdio.h>
int bisearch(int arr[],int key,int len){
int low = 0;
int high = len-1;
//折半查找需要定义最低位和最高位,取两数的中间值将已知数与其作比较
//若已知数大于mid数,则令low = mid+1,开始新一轮查找
//若已知数小于mid数,则令high = mid-1,来是新一轮查找
//直至找到该数
while (low <= high){
int mid = (low+high)/2;
if(key == arr[mid]){
printf("为您找到该数,为a[%d] = %d\n",mid,key);
break;
}else if(key > arr[mid]){
low = mid + 1;
}else if(key <arr[mid]){
high = mid - 1;
}
}
return low;
}
int main(){
// 0 1 2 3 4 5 6 7 8 9
int a[] = {1,3,5,7,8,12,23,56,58,89};
int x ;
int len = sizeof(a)/sizeof(int);
printf("请输入您需要查找的数:\n");
scanf("%d",&x);
bisearch(a,x,len);
return 0;
}
复制代码
作者:
唐阿丽
时间:
2015-11-16 11:48
来学习学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2