Saturday, August 22, 2015

Binary Search using Array


Q. 107. Accept 'n' numbers into an array and search for any value using Binary Search method.

Note: Condition for Binary Search is that all numbers entered into the array must be in Ascending order.


Copy Code:

#include <iostream>

using namespace std;

int main()

{

  int a[5], n, i, j, temp, s, low, high, mid;

  cout << "How many numbers would you enter ? ";

  cin >> n;

  cout << "Enter " << n <<" numbers :\n";

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

      cin >> a[i];

  // Sorting Array in Ascending Order for Binary Search

   for ( i=0 ; i < n-1 ; ++i )

      for ( j = i+1 ; j<n; ++j )

          if ( a[ i ] > a[ j ])

               {

                   temp = a[ i ] ; 

                   a[ i ] = a[ j ];

                   a[ j ] = temp;

                }  

  cout << "\nEnter the number to Search : ";

  cin >> s;

  low = 0;

  high = n-1;

  while (low <= high)

  {

     mid = (low + high)/2 ;

     if (s == a[mid])

       {

          cout << "\nAfter Sorting for Binary Search ";

          cout << s << " is PRESENT at Position " << mid +1;

          exit (0);

        }

      else if (s > a[mid])

              low = mid + 1;

           else 

              high = mid - 1 ;

   }

   cout << "\n" << s << " is NOT FOUND";

   return 0;

}






No comments:

Post a Comment