#include <iostream>
using namespace std;
int binarySearch(int dest, int* array, int len);
int main(void)
{
cout << "二分法查找算法:" << endl;
int arr[] = { 1, 5, 9, 34, 46, 63, 70, 78, 89, 90, 95, 105, 129, 159 };
int len = sizeof(arr) / sizeof(arr[0]);
int pos = binarySearch(89, arr, len);
cout << "位置: " << pos << endl;
if (pos != -1)
cout << " 找到了" << endl;
else
cout << "没找到" << endl;
pos = binarySearch(76, arr, len);
cout << "位置: " << pos << endl;
if (pos != -1)
cout << " 找到了" << endl;
else
cout << "没找到" << endl;
system("pause");
return 0;
}
int binarySearch(int dest, int* array, int len)
{
int low = 0;
int high = len - 1;
int mid = 0;
while (low < high)
{
mid = (low + high) / 2; // 获取中间位置
if (array[mid] == dest)
return mid;
else if (array[mid] > dest) // 在低半部查找
high = mid - 1;
else // 在高半部查找
low = mid + 1;
}
return -1;
}
07-15
05-25
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交