Advertisement
palenda21

Lab10B

Mar 27th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int bisearch(int val, int* array, int min, int max)
  5. {
  6.     if (max < min)
  7.         return -1;
  8.     int mid = (min + max) / 2;
  9.     if (array[mid] > val)
  10.         return bisearch(val, array, min, mid - 1 );
  11.     if (array[mid] < val)
  12.         return bisearch(val, array, mid + 1, max);
  13.     if (val == array[mid])
  14.         return 0;
  15.     return -1;
  16. }
  17.  
  18. int Search_Binary(int arr[], int left, int right, int key)
  19. {
  20.     int midd = 0;
  21.     while (true)
  22.     {
  23.         midd = (left + right) / 2;
  24.  
  25.         if (key < arr[midd])
  26.             right = midd - 1;
  27.         else if (key > arr[midd])
  28.             left = midd + 1;
  29.         else
  30.             return midd;
  31.  
  32.         if (left > right)
  33.             return -1;
  34.     }
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40.     setlocale(LC_ALL, "rus");
  41.     int n;
  42.     cout << "Введите размер массива: ";
  43.     cin >> n;
  44.     int* mass = new int [n];
  45.  
  46.     cout << "Введите массив: ";
  47.     for (int i = 0; i < n; i++)
  48.     {
  49.         cin >> mass[i];
  50.     }
  51.  
  52.     int key = 0;
  53.     int index = 0;
  54.  
  55.     for (int i = 0; i < n; i++)
  56.     {
  57.         cout << " " << mass[i];
  58.     }
  59.     cout << endl;
  60.     cout << "Введите любое число: ";
  61.     cin >> key;
  62.  
  63.     index = Search_Binary(mass, 0, n, key);
  64.  
  65.     if (index >= 0)
  66.         cout << "Указанное число находится в ячейке с индексом: " << index << endl;
  67.     else
  68.         cout << "Число не найдено" << endl;
  69.     bisearch(key, mass, 0, n);
  70.     if (bisearch(key, mass, 0, n) == 0)
  71.            cout << "Указанное число находится в ячейке с индексом: " << index << endl;
  72.        else
  73.            cout << "Число не найдено" << endl;
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement