二分查找
2017-01-11 20:34
274 查看
#include <iostream> using namespace std; //常规方式 int binary_find(vector<int> &data, int num) { int low = 0; int high = data.size() - 1; while (low <= high) { int mid = low + (high - low) / 2; if (num == data[mid]) { return mid; } else if (num < data[mid]) { high = mid - 1; } else { low = mid + 1; } } return -1; } //递归方式 int binary_find(vector<int> &data, int low, int high, int num) { if (low > high) return -1; int mid = low + (high - low) / 2; if (num == data[mid]) { return mid; } else if (num < data[mid]) { binary_find(data, low, mid - 1, num); } else { binary_find(data, mid + 1, high, num); } } int main() { int a[] = {1, 2, 3, 4, 6, 7, 8, 9, 100, 10000}; vector<int> test_vector(a, a+10); int i = binary_find(test_vector, 10000); cout << i << endl; getchar(); return 0; }
相关文章推荐
- 插值查找(二分查找的改进)
- 二分查找终极版
- NYOJ86 找球号(一)【二分查找】
- 二分查找,你真的会吗?
- 二分查找的两种实现方法
- 二分查找与STL中的lower_bound(),upper_bound(),binary_search()
- 对二分查找的改进
- 二分查找的非递归实现
- Java冒泡,快速,插入,选择排序^_^+二分算法查找
- JAVA数组排序——二分(折半)查找
- 数据结构实验之查找四:二分查找
- 二分查找
- 二分查找
- hiho#1133 : 二分·二分查找之k小数
- CodeForces-729C-Road to Cinema(二分查找 贪心 排序)
- 二分查找
- Leetcode 二分查找 Search a 2D Matrix
- 二分查找----(返回第一个找到的值)
- LA 2678 Subsequence(二分查找)
- c语言 数组形参 二分查找 随机种子 猜数游戏