现有两个一维整型有序数组合成一组。 解决求排在第N位(升序)的的数字,使用二分查找法求其在哪组
求该程序修改#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,4,5,7,8,10,23,24,58},
b[10]={1,3,5,7,9,10,11,12,13,14},
c[30];
int k=0,i=0,j=0;
for( ; ; )
{
if(a[i]<b[j])
{
c[k]=a[i];
k++;i++;
}
else
{
c[k]=b[j];
k++;j++;
}
if(i==10|| j==10)
break;
}
if(i==10)
for(;j<10;j++)
{
c[k]=b[j];
k++;
}
if(j==10)
for(;i<10;i++)
{
c[k]=a[i];
k++;
}
int n;
cout<<"请输入一个整数n"<<endl;
cin>>n;
cout<<"n = "<<n<<endl;
if(n<=k)
cout<<"第n个数为 "<<c[n-1]<<endl;
int search(a[10],c[n-1],10) ;
return 0;
}
int search(int a[],int &x,int n)
{
int left=0;
int right=n-1;
if(x==a[left] || x==a[right])
cout<<"该数在a组"<<endl;
else
{
while(left<=right)
{
int middle=(left+right)/2;
if (x==a[middle]) cout<<"该数在a组"<<endl;
if (x>a[middle]) left=middle+1;
else right=middle-1;
}
}
return 0;
}