#include<stdio.h>
#define OK 1
#define ERROR 0
/*BinarySearch Algorithm*/
int binarySearch(int e, int arr[], int lo, int hi)
{
int mi;
if(lo < hi)
{
mi = (lo + hi) / 2;
if(e < arr[mi])
return binarySearch(e, arr, lo, mi); //The element we find is located in the left of mi,and then implements decrease-and-conquer.
else if(arr[mi] < e)
return binarySearch(e, arr, mi+1, hi); //The element we find is located in the right of mi,and then implements decrease-and-conquer.
else return mi;
}
else return -1; //It indicates that we fail to find element.
}
int main()
{
int subscr;
int arr[10] = {2,4,5,6,8,11,13,14,42,50};
subscr = binarySearch(42, arr, 0, 10);//We use subscr to return the result of function call.
printf("%d",subscr);//If we find the element,we print the subscript of the element,else we print -1.
return 0;
}
Binary search algorithm in C source code
最新推荐文章于 2024-09-06 10:38:06 发布