早教吧作业答案频道 -->其他-->
给定一列有序的数.查询其中第一个大于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;
}
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;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]
}
continue;//查找下一个
}
for(i=0;i
return 0;
}
看了 给定一列有序的数.查询其中第...的网友还看了以下:
电脑程序求三位数a的反序输出b输入格式:进一个数字a输出格式:仅输出结果b样例输入:275样例输出 2020-04-07 …
小明编制了一个计算机计算程序,当输入任何一个有理数时,显示屏上的结果总等于所输入的这个有理数的绝对 2020-04-09 …
解释下列概念 模拟数据 数字数据 模拟信号 数字信号 模拟传输 数字传输解释下列概念:模拟数据、数 2020-05-14 …
事务T1中有两次查询学生表中的男生人数,在这两次查询执行中间,事务T2 对学生表中加入了一条男生 2020-05-26 …
0与另一个数的最大公约数是多少在用stein算法计算求大公约数时,如果输入0和另外一个数,则输出为 2020-06-12 …
用于询问某人某物在哪?的结构是怎样的?回答结构又是怎样的?询问单数询问复数 2020-06-20 …
小明编制了一个计算程序.当输入任一有理数,显示屏的结果总等于所输入有理数的平方与1之和.若输入-1 2020-07-16 …
在主函数中输入三个整数,求这三个整数中最大数和最小数的差值.求C程序代码要求:利用函数dif、函数m 2020-10-30 …
请输入您要咨询的问题...第一题:如果a&b=ab/10,那么2&5=()我学汉文的,看都看不懂,第 2020-11-30 …
任意输入5个整数,当这个数大于等于1小于10时,输出该数“是一位数字”;当该数大于等于10小于100 2020-12-03 …