Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define EOA -1 /*end of array, hacky way to signal the last array element*/
- int binSearch(int ar[], int x);
- int main (){
- int array[50] = {2,5,7,10,14,17,20,23,25,31,33,36,37,EOA};
- printf("%i",binSearch(array, 23));
- return 0;
- }
- int binSearch(int ar[], int x){
- int i, midPoint;
- for (i = 0; ar[i] != EOA; ++i);
- if (i % 2 == 0)
- midPoint = i/2;
- else
- midPoint = (i/2)+1;
- while (1){
- if (x < ar[midPoint])
- midPoint = midPoint*1/2;
- if (x > ar[midPoint])
- midPoint = midPoint*3/2;
- else
- return midPoint;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement