Advertisement
ptrawt

259201 Lab13.2

Nov 13th, 2014
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include "iostream"
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     bool found = false;
  7.     const int arraySize = 13;
  8.     int a[arraySize] = {1,5,15,19,25,27,29,31,33,45,55,88,100};
  9.     int key,low = 0,middle,high = (arraySize - 1),counter = 1;
  10.  
  11.     cout <<"Enter search key: ";
  12.     cin >> key;
  13.     while(low <= high)
  14.     {
  15.         cout<<"Pass#"<<counter<<": ";
  16.         for (int i = 0; i < arraySize; ++i)
  17.         {
  18.             if(i == low && low != high)
  19.             {
  20.                 cout<<"["<<a[i];
  21.             }
  22.             else if (i == high && low != high)
  23.             {
  24.                 cout<<" "<<a[i]<<"]";
  25.             }
  26.             else if (i == low && low == high)
  27.             {
  28.                 cout<<"["<<a[i]<<"]";
  29.             }
  30.             else
  31.             {
  32.                 cout<<" "<<a[i];
  33.             }
  34.         }
  35.  
  36.         middle = (low+high)/2;
  37.  
  38.         if(key == a[middle])
  39.         {
  40.             found = true;
  41.             cout <<endl<<"Found element "<<key<<" at index "<<middle<<endl;
  42.             break;
  43.         }
  44.         else if (key < a[middle])
  45.         {
  46.             high = middle - 1;          // search low end of array
  47.         }
  48.         else
  49.         {
  50.             low = middle + 1;           // search high end of array
  51.         }
  52.  
  53.         counter++;
  54.         cout<<endl;
  55.     }
  56.  
  57.     if(!found)
  58.     {
  59.         cout <<"Could not find element "<<key<<" in array a"<<endl;
  60.  
  61.     }
  62.  
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement