首页 > 程序开发 > 软件开发 > 其他 >

C折半查找(二分查找)

2017-04-10

C折半查找(二分查找):将n个元素分成个数大致相同的两半,取a[n 2]与欲查找的x作比较,如果x=a[n 2]则找到x,算法终止。

C折半查找(二分查找):将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如 果x< a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。

1.必须采用顺序存储结构
2.必须按关键字大小有序排列,即数组有序。

#include 
int main()
{
    int low,height,mid,key,judge=0;//judge用于判断是否找到 
    int array[9]={5,13,19,21,37,56,64,75,80};
    low = 0;height=8;
    int length=sizeof(array)/sizeof(int);
    scanf("%d",&key); 
    while(height>=low)//只需比较下界和上界,如果上界减到小于下界则为退出条件 
    {
        mid = (low+height)/2;
        if(key==array[mid]){
            judge=1;
            break;
        }

        else if(key<array[mid]) {="" height="mid-1;" }="" else="" low="mid+1;" if(judge)="" printf("查找成功!index="%d",mid);" printf("查找失败!");="" return="" 0;="" 
相关文章
最新文章
热点推荐