二分查找
来源:互联网 发布:数控机床编程教程视频 编辑:程序博客网 时间:2024/06/06 03:25
- int search(int array[], int n, int v)
- {
- int left, right, middle;
- left = 0, right = n - 1;
- while (left <= right)
- {
- middle = (left + right) / 2;
- if (array[middle] > v)
- {
- right = middle - 1;
- }
- else if (array[middle] < v)
- {
- left = middle + 1;
- }
- else
- {
- return middle;
- }
- }
- return -1;
- }
- //递归方法
- int search_recurse(int array[], int low, int high, int v)
- {
- int middle;
- middle = (low + high) / 2;
- if (low < high)
- {
- if (array[middle] > v)
- {
- return search_recurse(array, low, middle, v);
- }
- else if (array[middle] < v)
- {
- return search_recurse(array, middle + 1, high, v);
- }
- else
- {
- return middle;
- }
- }
- else if (low == high)
- {
- if (array[middle] == v)
- {
- return middle;
- }
- else
- {
- return -1;
- }
- }
- else
- {
- return -1;
- }
- return -1;
- }
- int main()
- {
- int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 13, 19};
- int m = search(array, sizeof(array)/sizeof(array[0]), 13);
- printf("m = %d\n", m);
- m = search_recurse(array, 0, sizeof(array)/sizeof(array[0]), 13);
- printf("m = %d\n", m);
- return 0;
- }
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- CentOS修改主机名(hostname)
- 简单的数据库连接工具类DBUtil
- mysql update操作
- 在Mac OS X Yosemite (10.10) 下搭建JSP服务器
- XSS攻击的原理
- 二分查找
- Java 接口,派生类的理解。
- C#常见的字符串截取
- cocos2d-x像素级触摸处理
- API指南—Activity的任务和后退栈
- Linux ifconfig without ip4 address
- 乐高手势使用说明
- Farpoint Spread 单元格中嵌入下拉多选框
- Delphi 停靠技术的应用1(在一个窗体中停靠另一个窗体)