011 折半查找法
程序员文章站
2024-03-20 18:29:16
...
#include <stdio.h>
#define N 10
/*
折半查找算法:
1、将数列有序化排列;
2、先以有序数列的中点位置为比较对象
3、如果要找的元素值小于该重点元素,则该查找序列缩小为左部分,否则为右半部分
*/
int fun(int a[], int m )
{ int low=0,high=N-1,mid;
while(low<=high)
{ mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
else if(m > a[mid])
low=mid+1;
else
return(mid);
}
return(-1);
}
void main()
{ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++) printf("%d ", a[i]);
printf("Enter m: "); scanf("%d",&m);
k=fun(a,m);
if(k>=0) printf("m=%d,index=%d\n",m,k);
else printf("Not be found!\n");
}
上一篇: FINALLY简述
下一篇: 关于Shiro的 表单认证