写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)

来源:互联网 发布:北京税控开票软件 编辑:程序博客网 时间:2024/05/22 17:05
#include <stdio.h>   int search(int arr[], int key, int left, int right)//封装一个函数用来调用{    while (left <= right)    {        int mid = left + (right - left) / 2;        if (key <arr[mid])        {            right = mid - 1;        }        else if (key  > arr[mid])        {            left = mid + 1;        }        else        {            return mid;        }    }    return -1;//此处如果while循环找到了要找的数,程序就不会运行到这步}int main(){    int k = 0;    printf("请输入要查找的数\n");    scanf("%d", &k);    int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };    int ret = search(arr, k, 0, 9);//调用函数,与封装的函数相对应,定义ret为函数的返回值    if (ret == -1)    {        printf("没找到\n");    }    else    {        printf("找到了%d\n", ret);    }    return 0;}

难点:折半查找不会使用,函数的封装与调用理解不透

阅读全文
0 0