《算法导论》4、二分查找实现(C++)
2015-05-07 10:35
295 查看
#include <iostream> using namespace std; int binarySearch(int a[], int p, int q, int target); void main() { int a[] = { 1,2,3,4,5,6,7,8,9,10 }; int index=binarySearch(a, 0, 9, 12); //12在数组中不存在 if (index != -1) cout << a[index] << endl; else cout << "error" << endl; system("pause"); } int binarySearch(int a[], int p, int q, int target) { if (p < q) { int temp = (p + q) / 2; if (a[temp] < target) binarySearch(a, temp+1, q, target); //注意+1 else if (a[temp] == target) return temp; else binarySearch(a, p, temp-1, target); //注意-1 } else { if (a[p] == target) return p; else return -1; } }
相关文章推荐
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))
- 算法导论Java实现-二分查找(习题2.3-5)
- 算法导论Java实现-二分查找运用(习题2.3-7)
- java实现二分查找
- c++ 实现快速排序与二分查找 源代码
- C语言:递归和非递归实现二分查找
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- Java 语言实现折半查找(二分查找)
- 二分查找递归和非递归实现
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 二分查找 6不6(Java实现)
- 二分查找的算法实现
- Java实现的两种常见简单查找算法示例【快速查找与二分查找】
- java两种实现二分查找方式
- 【算法拾遗】二分查找递归非递归实现
- JAVA冒泡排序和二分查找的实现
- 二分查找的递归和非递归实现
- 二分查找实现细节
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 二分查找 java递归和非递归实现