Advertisement
Guest User

Untitled

a guest
Jun 29th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.57 KB | None | 0 0
  1. #include <stdio.h>
  2. #define EOA -1 /*end of array, hacky way to signal the last array element*/
  3.  
  4. int binSearch(int ar[], int x);
  5.  
  6. int main (){
  7.     int array[50] = {2,5,7,10,14,17,20,23,25,31,33,36,37,EOA};
  8.  
  9.     printf("%i",binSearch(array, 23));
  10.  
  11.     return 0;
  12.  
  13. }
  14.  
  15. int binSearch(int ar[], int x){
  16.     int i, midPoint;
  17.     for (i = 0; ar[i] != EOA; ++i);
  18.     if (i % 2 == 0)
  19.         midPoint = i/2;
  20.     else
  21.         midPoint = (i/2)+1;
  22.     while (1){
  23.         if (x < ar[midPoint])
  24.             midPoint = midPoint*1/2;
  25.         if (x > ar[midPoint])
  26.             midPoint = midPoint*3/2;
  27.         else
  28.             return midPoint;
  29.         }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement