int BinarySearch_Iter(int *list, const int x, const int n)
{
int left = 0;
int right = 0;
while (left <= right)
{
int mid = (left + right) / 2;
if (x < list[mid]) right = mid - 1;
else if (x>list[mid]) left = mid + 1;
else return mid;
}
return -1;
}
int BinarySearch_Recursion(int *list, const int x, int left, const int right)
{
if (left <= right)
{
int mid = (left + right) / 2;
if (x < list[mid]) return BinarySearch_Recursion(list, x, left, mid - 1);
else if(x > list[mid]) return BinarySearch_Recursion(list, x, mid + 1, right);
else return mid;
}
return -1;
}
int main()
{
int list[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int result;
int num = 11;
result = BinarySearch_Recursion(list, num, 0, 9);
std::cout << result << std::endl;
return 0;
}