#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;
}