早教吧 育儿知识 作业答案 考试题库 百科 知识分享

给定一列有序的数.查询其中第一个大于x的数的位置.位置下标从0开始.如果这列数中不存在大于x的数,则输

题目详情
给定一列有序的数.查询其中第一个大于x的数的位置.位置下标从0开始.如果这列数中不存在大于x的数,则输
▼优质解答
答案和解析
#include
using namespace std;
int main()
{
int i,j,m=0,n=0,high=0,low=0,mid=0;
cin>>m;
int *data=new int[m];
for(i=0;icin>>data[i];
cin>>n;
int *find=new int[n];
int *location=new int[n];
for(i=0;i{
cin>>find[i];
location[i]=-1;
}
for(i=0;i{
low=0;high=m;
while(low<=high){//二分查找
mid=(low+high)/2;
if(data[mid]>find[i]&&data[mid-1]<=find[i])
else if(data[mid]>find[i]&&data[mid-1]>find[i])
high=mid-1;
else if(data[mid]low=mid+1;
}
continue;//查找下一个
}
for(i=0;icout<cout<system("pause");
return 0;
}
看了 给定一列有序的数.查询其中第...的网友还看了以下: