比较与简单查找,二分查找算法的速度更快。例有一个数组,每次将数组最中间的数与要查找的数进行比较,如果小了,就将中间数作为数组下限,在比较;如果大了,就将中间数作为数组上限。
#include "pch.h"
#include <iostream>
using namespace std;
int binary_search(int list[], int length, int item);
int main()
{
int list[] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14 };
int length = sizeof(list) / sizeof(list[0]);
int getNum = binary_search(list, length, 12);
cout << getNum << endl;
std::cout << "Hello World!\n";
}
int binary_search(int list[], int length, int item) {
int low = 0;
int high = length - 1;
int mid;
int guess;
while (low < high) {
mid = (low + high) / 2.0;
guess = list[mid];
if (guess == item) {
//return guess;
return list[mid];
break;
}
if (guess > item)
high = mid;
else
low = mid;
}
//return list[mid];
}