C++实现二分查找算法
#include <iostream>
using namespace std;
int BinarySearch(int* array, int start, int end, int findValue);
void test();
int main()
{
cout << "Binary Search Demo!\n";
test();
return 0;
}
void test() {
int nums = 0;
cout << "Please Array Number: ";
cin >> nums;
int* array = new int[nums + 1];
cout << "Please Array's Value: ";
for (int i = 0; i < nums; i++) {
cin >> array[i];
}
int findvalue = 0;
cout << "Please Input Target Value: ";
cin >> findvalue;
int index = BinarySearch(array, 0, nums - 1, findvalue);
cout << "The Index Is: " << index << endl;
delete[] array;
}
int BinarySearch(int* array, int start, int end, int findValue) {
int st = start;
int en = end;
int mid = 0;
while (st <= en) {
mid = (st + en) / 2;
if (findValue > array[mid]) {
st = mid + 1;
}
else if (findValue < array[mid]) {
en = mid - 1;
}
else {
return mid;
}
}
return -1;
}