用折半查找法找出整型数组中指定元素所在的位置,并输出(折半查找法只能用于有序数列)。

//用折半查找法找出整型数组中指定元素所在的位置,并输出(折半查找法只能用于有序数列)。 
#include<stdio.h>
main()
{
    int a[10]={1,3,6,8,9,12,15,16,19,20},n,low,high,mid;
    scanf("%d",&n);//输入要找的数    
    low=0; //llow是首元素的下标 
    high=9;//high是尾元素的下标 
    mid=(low+high)/2;//mid是中间元素的下标
    while(low<=high) 
    {
        if(a[mid]==n)    //找到了,跳出循环 
            break;
        else if(n<a[mid]) //中间元素大于待查数
            high=mid-1;
        else low=mid+1;//中间元素小于待查数 
        mid=(low+high)/2;//确定下一次循环的中间元素的位置         
    }
    if(low<=high)  //说明找到待查数后,从break跳出
        printf("%d在a[%d]中",n,mid);
    else
        printf("查无此数");    
}
 

猜你喜欢

转载自www.cnblogs.com/yanglike111/p/13171286.html