C语言:编写折半查找函数,即二分法

来源:互联网 发布:cctv软件下载 编辑:程序博客网 时间:2024/05/17 22:55
#include<stdio.h>#include<stdlib.h>int Binary(int arr[],int size,int x){    int left = 0;    int right = size - 1;    int mid = left - (left - right) / 2;  //防止溢出!!!int mid =( left - right )/2 好。        while (left <= right)    {        if (x > arr[mid])        {            mid++;            right--;        }                else if (x < arr[mid])        {            mid--;            left++;        }                else        {            return mid;        }    }    return -1;}int main(){    int arr[] = { 2, 5, 6, 7, 9, 14, 18, 20 };    int len = sizeof(arr) / sizeof(arr[0]);    int num = 0;    scanf("%d", &num);  //输入要查找的数num    int ret = Binary(arr, len,num);    if (ret == -1)    {        printf("not exist!");    }    else    {        printf("exist!下标为:\n");        printf("%d", ret);    }    system("pause");    return 0;}


0 0
原创粉丝点击