您的当前位置:首页正文

数组:二分查找

2024-11-27 来源:个人技术集锦
#include<stdio.h>
int search(int arr[],int len,int num)
{
    
    int min=0;//首索引
    int max=len-1;//尾索引
    int mid=(min+max)/2;//中间索引

     while(min<=max)
    {
    if(num<arr[mid])//如果num在中间偏左
    {
        max=mid-1;
    }
    else if(num>arr[mid])//如果num在中间偏右
    {
        min=mid+1;
    }
    else//num与mid索引对应数字相等
    {
        return mid;
    }
    }
return -1;//表示该数字在数组里不存在
}
int main()
{
    int arr[]={1,2,3,4,5,6,7,8};
    int len=sizeof(arr)/sizeof(arr[0]);
    int num=4;//寻找4在数组中对应的索引
    int in=search(arr,len,num);//调用函数
    printf("%d",in);//打印num对应索引


    return 0;
}

显示全文