Добрый день. Помогите понять, что такое бинарный поиск и правильно ли работает программа?
Каким образом вычисляются ответы?
Верно ли написан код?
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int mas[20];
for (int i=0;i<20;i++)
{
mas[i]=rand()%10;
}
for (int i=0;i<20;i++)
cout<<mas[i]<<" ";
cout<<endl;
for (int i=0;i<19;i++)
{
for (int j=i+1;j<20;j++)
{
if (mas[i]>mas[j])
{
int temp=mas[i];
mas[i]=mas[j];
mas[j]=temp;
}
}
}
for (int i=0;i<20;i++)
cout<<mas[i]<<" ";
cout<<endl;
int number;
cin>>number;
int left=0;
int right=19;
int pos;
while (right-left>0)
{
pos=(left+right)/2;
if (number>mas[pos])
left=pos+1;
else
right=pos;
}
cout<<pos<<endl;
}