折半查找
来源:互联网 发布:全球人工智能大会 编辑:程序博客网 时间:2024/06/10 05:02
折半查找:
在按从小到大顺序的数组中。先查找中间的元素,将中间的元素与要查找的元素作比较。如果要查找的元素比中间元素大,则用右面一半的元素再进行折半查找(递归);如果要查找的元素比中间元素小,则用左面一半的元素再进行折半查找。直至找到元素或者没有元素可找为止。
代码:
#include <stdio.h>//参数分别为:返回-1(没找到)或者元素下标(找到)bin_find(数组首地址,
//第一个下标,最后一个下标,要查找的元素)int bin_find(int* pa, int low, int high, int key){int tmp = (low + high)/2;if(low > high )return -1; else {if(key > pa[tmp])return bin_find(pa, tmp+1, high, key);else if(key < pa[tmp])return bin_find(pa, low, tmp-1, key);else return tmp;}}int main(){int a[9] = {13, 20, 23, 28, 30, 34, 50, 60, 99};int ret = bin_find(a, 0, 8, 34);if(ret < 0){printf("not found. \n");return -1;}printf("a[%d]: %d\n",ret, a[ret]);return 0;}
结果:
0 0
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- POJ-3683-Priest John's Busiest Day(2-SAT染色)
- 嵌入式系统开发提升可靠性的七大技巧
- Makefile经典教程
- lua require dofile loadfile 比较笔记
- 《C++ primer plus》读书笔记 博客目录
- 折半查找
- Delphi预编译指令总结
- BZOJ3879: SvT 后缀树 虚树
- 同时开发两款H5的ARPG游戏的设计和实践
- box-sizing常用的属性有哪些?分别有什么作用?
- 访问网络文件共享服务
- Java压缩算法性能比较
- 基本数据类型和引用数据类型的参数传递
- java使用一维数组输出杨辉三角