对分查找(Binary Search)----C 语言学习
时间:2010-10-24 来源:涅槃的猫
给定一个整数 X 和整数 ,后者已经预先排序,并且已经在内存中,求使得 的下标 i ,如果 X 不在数据之中,则返回 i = -1。
来看看实现源码:
int BinarySearch(const int A[], int X, int N) { int Low, Mid, 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; else return Mid; /*Found*/ } return -1;/*Not Found: Return -1*/ }
这里要注意的是:作为参数的数组 A,在调用函数 BinarySearch 的时候,已经经过了一次排序。
相关阅读 更多 +