Interviews Questions, Algorithms, Aptitude, C Interview Program, C Theory Question, Aptitude Tricks, Test Series,

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

Wednesday, 27 March 2019

Binary Search

ALGORITHM BinarySearch(A[0..n 1], K)

//Implements nonrecursive binary search
//Input: An arrayA[0..n 1] sorted in ascending order and
// a search key K


//Output: An index of the array’s element that is equal to K or -1 if there is //no such element

← 0; 
← 1

while ≤ do

← (l r)/2

if A[m
return m

else if K < A[m
← 1

else ← 1return -1  

C program:

#include <stdio.h>

int main()
{
   int c, first, last, middle, n, search, array[100];

   printf("Enter the number of elements\n");
   scanf("%d",&n);

   printf("Enter %d integers\n", n);

   for (c = 0; c < n; c++)
      scanf("%d",&array[c]);

   printf("Enter the value to find\n");
   scanf("%d", &search);

   first = 0;
   last = n - 1;
   middle = (first+last)/2;

   while (first <= last) {
      if (array[middle] < search)
         first = middle + 1;
      else if (array[middle] == search) {
         printf("%d found at location %d.\n", search, middle+1);
         break;
      }
      else
         last = middle - 1;

      middle = (first + last)/2;
   }
   if (first > last)
      printf("Not found! %d isn't present in the list.\n", search);

   return 0;
}

Output:
Enter the number of elements
5
Enter 5 integers
1
2
3
45
6
Enter the value to find
3
3 found at location 3.