简单程序的编写2:折半查找法找值

有15个数,按从大到小的顺序存放在一个数组中,输入一个数,要求折半查找法找出该数组中某个元素的值,如果该数不在数组中,则打印输出“无此数”。

#include <stdio.h>
int main()
{
    int a[15] = {99, 97, 87, 76, 65, 63, 59, 58, 51, 43, 32, 31, 28, 15, 6};
    int x, low, high, mid, n;
    n = 15;
    low = 0;
    high = n - 1;
    scanf("%d", &x);
    while (low <= high){
        mid = (low + high) / 2;
        if (x > a[mid])
            high = mid - 1;
        else if (x < a[mid])
            low = mid + 1;
        else if (x == a[mid]){
            printf("%d is %dth number!\n", x, mid+1);
            break;
        }
    }
    if (x != a[mid])
        printf("No match!\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42342113/article/details/82958928