Showing posts with label Array Search. Show all posts
Showing posts with label Array Search. Show all posts

Saturday, August 22, 2015

Linear Search in an Array


Q. 106. Program to accept 'n' numbers into an array and Search for a value using the Linear Search method.


Copy Code:

#include <iostream>
using namespace std;

int main()
{
  int a[20], n, i, s;
  cout << "How many Numbers would you enter ? ";
  cin >> n;
  cout << "\nEnter " << n << " Numbers\n";
  for ( i =0 ; i<n ; ++i)
      cin >> a[ i ];

  cout << "\nWhich Number to Search ? ";
  cin >> s;
  for ( i=0 ; i<n ; ++i )
  if ( s == a[ i ] )
      {
        cout << "\n" << s << " is PRESENT at position " << i+1;
        exit (0);
      }
   cout << s << " - Your Search Number is NOT FOUND";
   
   return 0;
}

  




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;

}