#include<iostream.h>
class bsearch
{
public:
int a[10],n;
void input();
void binarySearch(int lb, int ub, int key);
};
void bsearch::input()
{
int i;
cout<<"Enter n value:";
cin>>n;
cout<<"Input should be sorted numbers \n";
for(i=1;i<=n;i++)
{
cin>>a[i];
}
}
void bsearch::binarySearch(int lb, int ub, int key)
{
int mid;
int comparisonCount = 1;
mid = (lb + ub)/2;
while((a[mid] != key) && (lb <= ub))
{
comparisonCount++;
if (a[mid] > key)
{
ub = mid - 1;
}
else
{
lb = mid + 1;
}
mid = (lb + ub)/2;
}
if(lb <= ub)
{
cout<<"Thenumberwasfoundinasubscript:"<<mid<<"\n";
cout<< a[mid];
cout<< "\n The binary search found the number after " << comparisonCount << " comparisons.\n";
}
else
cout<< "Sorry, the number is not in this array list. The binary search made "<<comparisonCount << "comparisons.";
return;
}
void main()
{
int key;
bsearch b;
b.input();
cout<< "Enter the key or element to search \n";
cin>>key;
b.binarySearch(0, b.n, key);
getch();
}
Comments
Post a Comment