#include <iostream>
#include<ctime>
using namespace std;
// функція алгоритма бінарного пошуку
int Search_Binary(int arr[], int left, int right, int key)
{
int midd = 0;
while (left <= right)
{
midd = left + (right - left) / 2;
if (arr[midd] == key)
return midd;
else if (key > arr[midd])
left = midd + 1;
else
right = midd - 1;
}
return -1;
}
//упорядкування масиву для бінарного пошуку
void sort_b(int arr[], int n)
{
int i, j, imin, tmp;
for (i = 0; i < n - 1;i++)
{
imin = i;
for (j = i + 1; j < n; j++)
if (arr[imin]>arr[j])
imin = j;
tmp = arr[i];
arr[i] = arr[imin];
arr[imin] = tmp;
}
}
int main()
{
const size_t SIZE = 50;
int array[SIZE] = {};
int key = 0;
int index = 0; // індекс комірки з шуканим значенням
cout<<"Сформувати масив"<<endl;
for (size_t i = 0; i < SIZE; i+=10)
{
for (size_t j = i; j < i+10;j++)
{
array[i] =rand()%100;
cout << array[j] << " ";
}
cout << endl;
}
cout << endl;
cout << "Відсортувати масив"<<endl;
sort_b(array, SIZE);
for (size_t i = 0; i < SIZE; i+=10)
{
for (size_t j = i; j < i+10;j++)
cout << array[j] << " ";
cout << endl;
}
cout << "\n\n Введіть деяке число: ";
cin >> key;
index = Search_Binary(array, 0, SIZE, key);
if (index >= 0)
cout << "Вказане число знаходиться у комірці з індексом: " << index << "\n\n";
else
cout << "У масиві немає такого числа!\n\n";
return 0;
}