Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int bisearch(int val, int* array, int min, int max)
- {
- if (max < min)
- return -1;
- int mid = (min + max) / 2;
- if (array[mid] > val)
- return bisearch(val, array, min, mid - 1 );
- if (array[mid] < val)
- return bisearch(val, array, mid + 1, max);
- if (val == array[mid])
- return 0;
- return -1;
- }
- int Search_Binary(int arr[], int left, int right, int key)
- {
- int midd = 0;
- while (true)
- {
- midd = (left + right) / 2;
- if (key < arr[midd])
- right = midd - 1;
- else if (key > arr[midd])
- left = midd + 1;
- else
- return midd;
- if (left > right)
- return -1;
- }
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n;
- cout << "Введите размер массива: ";
- cin >> n;
- int* mass = new int [n];
- cout << "Введите массив: ";
- for (int i = 0; i < n; i++)
- {
- cin >> mass[i];
- }
- int key = 0;
- int index = 0;
- for (int i = 0; i < n; i++)
- {
- cout << " " << mass[i];
- }
- cout << endl;
- cout << "Введите любое число: ";
- cin >> key;
- index = Search_Binary(mass, 0, n, key);
- if (index >= 0)
- cout << "Указанное число находится в ячейке с индексом: " << index << endl;
- else
- cout << "Число не найдено" << endl;
- bisearch(key, mass, 0, n);
- if (bisearch(key, mass, 0, n) == 0)
- cout << "Указанное число находится в ячейке с индексом: " << index << endl;
- else
- cout << "Число не найдено" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement