只是想学C 发表于 2014-3-26 03:48:30

二分法查找数组中的是否有某元素

#include <stdio.h>

void main()
{
        int a={1,2,3,4,5,6,7,8,9,10},l=0,m=5,h=9,f=0,i,n;
       
        printf("The array a is:\n");
        for(i=0;i<10;i++)
        {
                printf("%5d",a);
        }
        putchar('\n');       
        printf("Input the num of n:");
        scanf("%d",&n);
        while(l<=h)                                                                        //循环条件这个问题很重要。
        {
                if(n==a)
                {
                        f=1;
                        break;
                }
                else if(n>a)
                {
                        l=m+1;
                        m=(l+h)/2;
                }
                else
                {
                        h=m-1;
                        m=(l+h)/2;
                }
        }
        if(f==1)
        {
                printf("%d is at the a[%d]\n",n,m);
        }
        else
        {
                printf("There is no %d\n",n);
        }
       
       
}没事发着玩的,高手勿拍……


feitianqu 发表于 2014-3-26 13:08:40

表示真的不错
页: [1]
查看完整版本: 二分法查找数组中的是否有某元素