C语言习题:有序数组查找某具体数字n(折半查找)

阅读 79

2022-04-05

#include <stdio.h>

int main() {
    // insert code here...
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    //要查找的数字
    int k = 0;
    printf("请输入需要查找的数字:");
    scanf("%d", &k);
    //数组的元素个数
    int sz = sizeof(arr) / sizeof(arr[0]);
    int left = 0;
    int right = sz - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (arr[mid] < k)
            left = mid + 1;
        else if(arr[mid] > k)
            right = mid - 1;
        else{
            printf("找到了“%d”,在数组的%d号位置\n", arr[mid], mid);
            break;
        }
    }
    if (left > right) {
        printf("找不到了\n");
    }
    return 0;
}

 

 

精彩评论(0)

0 0 举报