C++中表示中间数
发布网友
发布时间:2023-12-11 07:40
我来回答
共2个回答
热心网友
时间:2023-12-20 15:49
二分查找
#include<iostream>
using namespace std;
int find(int a[], int left,int right,int x)
{
int mid;
if(left<=right)
{
mid= (left+right)/2 ; //mid是left和right的中间数
if(a[mid]==x)
return mid; //找到
else if(x<a[mid])
return find(a, n, left, mid, x ); //继续在左半边找
else
return find(a, mid, right,x ); //继续在右半边找
}
return -1;
}
int main()
{
int a[10]={5,8,16,20,37,43,56,69,78,85};
int x;
cout<<"请输入要查找的整数:";
cin>>x;
int i=find(a, 0, 9, x ); //调用find函数
if(i==-1)
cout<<"未找到!"<<endl;
else
cout<<"查找成功!该元素下标是:"<<i<<endl;
return 0;
}
追问为什么left和right的中间数就是(left+right)/2?
热心网友
时间:2023-12-20 15:50
就是一个主函数调用自己定义的find方法