二分查找(C语言描述)

来源:互联网 发布:电商运营 知乎 编辑:程序博客网 时间:2024/05/16 11:42

二分查找是比较简单的一种搜寻方式,但是它必须基于一个已排序的数组,换句话说的话,也就是二分查找是需要一个比较来判断是往哪一方缩小查找区间:

建议查找益于比较的数据:例如数字


代码上:

/*对分查找*/#include<stdio.h>int BinarySearch(const int A[], int X, int N );//定义对分查找函数 函数的参数为(元素数组, 查找的元素, 数组的长度 )int main(){int a[]={1,2,3,4,5,6,7};//自定义的一个数组int b = BinarySearch( a, 5, 7);//调用对分查找函数printf("%d\n", b);//打印出该元素在数组的位置return 0;}int BinarySearch(const int A[], int X, int N )//对分查找函数{int Low;//查找区间的左侧位置int Mid;//查找区间的中间位置int High;//查找位置的右侧位置Low = 0; High = N - 1;while( Low <= High){//查找开始,直到区间的左侧=右侧结束查找,即查找区间为一个元素时Mid = ( Low + High) / 2;//初始化区间中间位置if( A[Mid] < X){//查找数据大于区间中间位置,查找区间缩小向右侧Low = Mid + 1;}else if( A[Mid] > X){//查找数据小于区间中间位置,查找区间缩小向坐侧High = Mid -1;}elsereturn Mid; /*Found*/}return -1; /*Not Found*/}



注意要点:缩小查找区间时,向右侧缩小时,Low = Mid + 1;向左侧缩小时,High = Mid - 1;


原创粉丝点击