折半查找
来源:互联网 发布:阿里云 宕机 经济损失 编辑:程序博客网 时间:2024/06/11 18:35
//折半查找:
#include<stdio.h>#include<stdlib.h>int binFind(int A[],int len,int x) //折半查找{if(A == NULL)exit(1);else{int low = 0,high = len-1; //low用来记录低下标,high用来记录高下标int mid; //low值为中间下标,用来与x比较(因此成为折半查找)while(low <= high){mid = ((low + high)/2);if(A[mid]<x) //如果x大于中间值,则x一定在右半段{low = mid+1; //改变低下标为中间下标的下一个mid = (low + high)/2;}else if(A[mid]>x) //如果x小于中间值,x一定存在于左半段{high = mid-1; //改变高下标为中间下标的前一个mid = (low + high)/2;}elsereturn mid; //否则,x与当前中间值相等,则返回中间下标}}return -1;}int main(){int arr[] = {1,2,3,5,9,15,36,46,78,95},ph = 0,item = 0;for(int i = 0;i<sizeof(arr)/sizeof(arr[0]);i++)printf("%d ",arr[i]);printf("\n请输入要查找的值:");scanf("%d",&item);ph = binFind(arr,sizeof(arr)/sizeof(arr[0]),item);if(-1 != ph)printf("a[%d] = %d\n",ph,arr[ph]);elseprintf("没有找到%d\n",item);return 0;}
0 0
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 《Shazam It! Music Recognition Algorithms, Fingerprinting, and Processing》译文
- 排序算法及其效率分析(二)外排序
- Python标准库:内置函数str(object='') str(object=b'', encoding='utf-8', errors='strict')
- 解决安装了msyql,却无法再服务列表出现MySQL
- SemEval2015语义评测任务总结
- 折半查找
- 1123123123
- 何乐不为
- rails常用資料庫查詢操作、方法淺析
- Ruby 之 class 中的 private、 protected、public
- Codeforces Round #301 (Div. 2) -- (A,B,C,D)
- Android广播发送机制剖析【android广播系列二】
- C++学习篇
- c++ Oracle OCCI 编程