//Xinnuo Wanng CS1A Chapter 8 #3 Page.487
/*******************************************************************************
* Convert Linear to Binary Search
* _____________________________________________________________________________
* The program modifies the linear search to binary search.
* _____________________________________________________________________________
* Input
* win : The accepted winning number
*
* ****************************************************************************/
#include <iostream>
using namespace std;
int binary(int arr[], int size, int win);
int main()
{
int arr[]={13579, 26791, 26792, 33445, 55555, 62483, 77777, 79422, 85647,
93121};
int size = sizeof(arr)/sizeof (arr[0]);
cout << "Enter the winning number: " ;
int win;
cin >> win;
cout << win<< endl;
int m =binary(arr,size,win);
if(m==-1)
{
cout << "None of them win" << endl;
}
return 0;
}
int binary(int arr[], int size, int win)
{
bool found = false;
int position = -1;
int first = 0;
int last = size-1;
while (!found && first <= last)
{
int middle = (first + last)/2;//
if(arr[middle] == win)
{
found = true;
position = middle;
cout << "Congradulation!" << endl;
}
else if(arr[middle] > win)
{
last = middle -1;
}
else
{
first = middle +1;
}
}
return position;
}
Ly9YaW5udW8gV2FubmcgICAgICAgICAgICAgICAgQ1MxQSAgICAgICAgICAgICAgICAgICAgICAgIENoYXB0ZXIgOCAjMyBQYWdlLjQ4NwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBDb252ZXJ0IExpbmVhciB0byBCaW5hcnkgU2VhcmNoCiAqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIFRoZSBwcm9ncmFtIG1vZGlmaWVzIHRoZSBsaW5lYXIgc2VhcmNoIHRvIGJpbmFyeSBzZWFyY2guCiAqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIElucHV0CiAqICAgIHdpbiAgICA6IFRoZSBhY2NlcHRlZCB3aW5uaW5nIG51bWJlcgogKiAKICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBiaW5hcnkoaW50IGFycltdLCBpbnQgc2l6ZSwgaW50IHdpbik7CgppbnQgbWFpbigpIAp7CglpbnQgYXJyW109ezEzNTc5LCAyNjc5MSwgMjY3OTIsIDMzNDQ1LCA1NTU1NSwgNjI0ODMsIDc3Nzc3LCA3OTQyMiwgODU2NDcsIAoJOTMxMjF9OwogICAgaW50IHNpemUgPSBzaXplb2YoYXJyKS9zaXplb2YgKGFyclswXSk7CiAgICBjb3V0IDw8ICJFbnRlciB0aGUgd2lubmluZyBudW1iZXI6ICIgOwogICAgaW50IHdpbjsKICAgIGNpbiA+PiB3aW47CiAgICBjb3V0IDw8IHdpbjw8IGVuZGw7CiAgICBpbnQgbSA9YmluYXJ5KGFycixzaXplLHdpbik7CiAgICBpZihtPT0tMSkKICAgIHsKICAgIAljb3V0IDw8ICJOb25lIG9mIHRoZW0gd2luIiA8PCBlbmRsOwogICAgfQoJcmV0dXJuIDA7Cn0KCmludCBiaW5hcnkoaW50IGFycltdLCBpbnQgc2l6ZSwgaW50IHdpbikKewoJYm9vbCBmb3VuZCA9IGZhbHNlOwoJaW50IHBvc2l0aW9uID0gLTE7CglpbnQgZmlyc3QgPSAwOwoJaW50IGxhc3QgPSBzaXplLTE7Cgl3aGlsZSAoIWZvdW5kICYmIGZpcnN0IDw9IGxhc3QpCgl7CgkJaW50IG1pZGRsZSA9IChmaXJzdCArIGxhc3QpLzI7Ly8KCQlpZihhcnJbbWlkZGxlXSA9PSB3aW4pCgkJewoJCQlmb3VuZCA9IHRydWU7CgkJCXBvc2l0aW9uID0gbWlkZGxlOwoJCQljb3V0IDw8ICJDb25ncmFkdWxhdGlvbiEiIDw8IGVuZGw7CgkJfQoJCWVsc2UgaWYoYXJyW21pZGRsZV0gPiB3aW4pCgkJewoJCQlsYXN0ID0gbWlkZGxlIC0xOwoJCX0KCQllbHNlCgkJewoJCQlmaXJzdCA9IG1pZGRsZSArMTsKCQl9Cgl9CglyZXR1cm4gcG9zaXRpb247Cn0=