二分查找练习
#include <iostream> using namespace std; int arr1[] = { 1,2,3,4,5,6,7,8,9 }; int arr2[] = { 1,1,1,2,3,3,4,6,98 }; int MyBinarySearch(int array[], int begin, int end, const int value) { while (begin <= end) { int middle = (begin + end) / 2; if (value > array[middle]) return MyBinarySearch(array, (middle+1), end, value); else if (value < array[middle]) return MyBinarySearch(array, 0, (middle-1), value); else return middle; } return -1; } int MyBinarySearch1(int array[], int length,const int value) { int begin = 0; int end = length - 1; while (begin <= end) { int middle = (begin + end) / 2; if (value == array[middle]) return middle; else if (value > array[middle]) begin = middle + 1; else end = middle - 1; } return -1; } int main() { cout << MyBinarySearch(arr1, 0, 8, 7) << endl; cout << MyBinarySearch(arr2, 0, 8, 98) << endl; cout << MyBinarySearch(arr1, 0, 8, 1) << endl; cout << MyBinarySearch(arr2, 0, 8, 1) << endl; cout << endl; cout << MyBinarySearch(arr1, 0, 8, 77) << endl; cout << MyBinarySearch(arr1, 0, 8, 0) << endl; cout << MyBinarySearch(arr2, 0, 8, 7) << endl; cout << MyBinarySearch(arr2, 0, 8, 99) << endl; cout << MyBinarySearch(arr2, 0, 8, 0) << endl; cout << endl; cout << MyBinarySearch1(arr1, 9, 7) << endl; cout << MyBinarySearch1(arr2, 9, 98) << endl; cout << MyBinarySearch1(arr1, 9, 1) << endl; cout << MyBinarySearch1(arr2, 9, 1) << endl; cout << endl; cout << MyBinarySearch1(arr1, 9, 77) << endl; cout << MyBinarySearch1(arr1, 9, 0) << endl; cout << MyBinarySearch1(arr2, 9, 7) << endl; cout << MyBinarySearch1(arr2, 9, 99) << endl; cout << MyBinarySearch1(arr2, 9, 0) << endl; cout << endl; return 0; }
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
![阿里打赏](https://files.cnblogs.com/files/itdef/ali2.bmp)
![微信打赏](https://files.cnblogs.com/files/itdef/weixin2.bmp)