您的位置:首页 > 编程语言 > Go语言

Binary search algorithm in C source code

2015-10-22 22:32 357 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法