#include <iostream>
using namespace std;
bool bs(int *arr, int low, int high, int sval)
{
int mid = (high + low) / 2;
if (arr[mid] == sval)
{
return true;
}
else if (arr[mid] < sval)
{
low = mid + 1;
if(bs(arr, low, high, sval))
return true;
}
else
{
high = mid - 1;
if(bs(arr, low, high, sval))
return true;
}
return false;
}
bool bsiterate(int *arr, int low, int high, int sval)
{
if (low > high)
{
return false;
}
else
{
int mid = 0;
while (low <= high)
{
mid = (low + high) / 2;
if (arr[mid] == sval)
{
return true;
}
else if (arr[mid] < sval)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
return false;
}
}
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
if (bs(a, 0, 9, 8))
{
cout << "found" << endl;
}
if (bsiterate(a, 0, 9, 8))
{
cout << "found" << endl;
}
return 0;
}
using namespace std;
bool bs(int *arr, int low, int high, int sval)
{
int mid = (high + low) / 2;
if (arr[mid] == sval)
{
return true;
}
else if (arr[mid] < sval)
{
low = mid + 1;
if(bs(arr, low, high, sval))
return true;
}
else
{
high = mid - 1;
if(bs(arr, low, high, sval))
return true;
}
return false;
}
bool bsiterate(int *arr, int low, int high, int sval)
{
if (low > high)
{
return false;
}
else
{
int mid = 0;
while (low <= high)
{
mid = (low + high) / 2;
if (arr[mid] == sval)
{
return true;
}
else if (arr[mid] < sval)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
return false;
}
}
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
if (bs(a, 0, 9, 8))
{
cout << "found" << endl;
}
if (bsiterate(a, 0, 9, 8))
{
cout << "found" << endl;
}
return 0;
}