21 мая 2015 г.

Двоичный поиск

int BinarySearch (int A[], int Lb, int Ub, int Key)
{
int M;
while(1)
{
M = (Lb + Ub)/2;
if (Key < A[M])
Ub = M - 1;
else
if (Key > A[M])
Lb = M + 1;
else
return M;

if (Lb > Ub)
return -1;
}
}

void main()
{
srand(time(NULL));
const long SIZE=10;
int ar[SIZE];
int key,ind;

// до сортировки
for(int i=0;i<SIZE;i++)
{
ar[i]=rand()%100;
cout<<ar[i]<<"\t";
}
cout<<"\n\n";
cout<<"Enter any digit:";
cin>>key;
ind=BinarySearch(ar,0,SIZE,key);
cout<<"Index - "<<ind<<"\t";
cout<<"\n\n";
}

Комментариев нет:

Отправить комментарий