#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
最新推荐文章于 2025-12-04 16:02:12 发布
本文介绍了一种高效的二分查找算法实现过程,包括算法原理、代码实现及应用实例,通过具体代码展示了如何在有序数组中进行元素查找。
5977

被折叠的 条评论
为什么被折叠?



