二分查找练习
#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驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
浙公网安备 33010602011771号