by Dinesh Thakur Category: Array Pointer and Union

This method assumes that the set of elements in a list is first arranged in ascending or descending order. The list is initially divided into two parts and the mid point is found. If the number to be searched is less than the value of the element at the mid point, it implies that the given number lies in the first part of the list, otherwise the given number lies in the second part of the list. This is illustrated as follows:

 

Example

 

The program illustrates searching a number in a given list using Binary search.

 

#include <iostream.h>

const int n=5;

void main()

{

int i,s,m,low=0,mid,top,p;

int a[n];

cout<<"Enter the number of elements";

cin>>m;

cout<<"Enter the elements in sorted order";

for(i=0;i<m;i++)

cin>>a[i];

cout<<"Enter the element to be searched ";

cin>>s;

top=m;

while(low<=top)

{

mid=(low+top )/2;

if (s==a[mid])

{

cout<<endl;

cout<<"Element is present in posifion "<<mid+1;

p=1;

break;

}

else

if (s<a[mid])

top=mid-1;

else

low=mid+ 1;

}

if (p!=1)

cout<<"Element is not present in the list";

}

 

Input and Output:

 

Enter the number of elements 5

Enter the elements in sorted order 2 4 7 9 10

Enter the element to be searched 7

Element is present in position 3



About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.



Related Articles