Advertisement
avr39ripe

PV024binSearch

Oct 29th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.     const int minValue{ 0 };
  6.     const int maxValue{ 99 };
  7.     const int arrSize{ 25 };
  8.     int arr[arrSize]{};
  9.  
  10.     int tmp;
  11.  
  12.  
  13.  
  14.     //srand(time(0));
  15.  
  16.     for (int i{ 0 }; i < arrSize; ++i)
  17.     {
  18.       arr[i] = ((rand() % (maxValue - 1)) + minValue);
  19.     }
  20.  
  21.     for (int i{ 0 }; i < arrSize; ++i) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  22.  
  23.     for (int head{ 0 }; head < arrSize; ++head)
  24.     {
  25.         //std::cout << "Head: " << head << '\n';
  26.         for (int tail{ arrSize - 1 }; tail > head; --tail)
  27.         {
  28.             if (arr[tail] < arr[tail - 1])
  29.             {
  30.                 tmp = arr[tail - 1];
  31.                 arr[tail - 1] = arr[tail];
  32.                 arr[tail] = tmp;
  33.                 //for (int i{ 0 }; i < arrSize; ++i) { std::cout << arr[i] << ' '; }; std::cout << "head: " << head << '\n';
  34.             }
  35.         }
  36.     }
  37.     for (int i{ 0 }; i < arrSize; ++i) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  38.  
  39.    
  40.     int key{ 5 };
  41.     std::cout << "Enter search key...\n";
  42.     std::cin >> key;
  43.  
  44.     int left{ 0 };
  45.     int right{ arrSize - 1 };
  46.     int mid{0};
  47.  
  48.     while (true)
  49.     {
  50.         mid = (left + right) / 2;
  51.         if (key == arr[mid]) { std::cout << "Found! :)"; break; };
  52.         if (key < arr[mid]) { right = mid - 1; std::cout << "left side\n"; }
  53.         if (key > arr[mid]) { left = mid + 1;  std::cout << "right side\n"; }
  54.         if (left > right) { std::cout << "NOT Found! :)"; break; }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement