二分法~~
很出名阿~这个~
以下内容为程序代码:
int binarysearch(int p[],int n,
int value, /* 查找值 */
int *m) /* 返回的是第一个大于等于查找值的元素
* 位置和小于查找值的元素个数 */
{
int op=0;
int i=0; /* 头指针前面的元素小于查找值 */
int j=n-1; /* 尾指针和它后面的元素大于等于查找值 */
int k; /* 中间指针 */
if (n==0) { /* 空列表 */
*m=0;
return 0;
}
while (i<j) {
k=(i+j)/2;
if (p[k]<value)
i=k+1;
else
j=k;
op++;
}
/* 头尾指针指向同一个位置 */
if (p>=value) /* 此位置上元素大于等于查找值 */
*m=i;
else /* 全部元素都小于查找值 */
*m=n;
op++;
return op;
}