📄 hb.cpp
字号:
//有序合并两个数组(重复的也保留)
#include<iostream>
#include<memory>
using namespace std;
int a[4],b[7],c[11]; ]
int merge(int af[],int lena,int bf[],int lenb) //有序合并
{
int i=1,j=1,k=1;
do //检索a[i]b[j]中较小的,赋给c[k]
{
while((af[i]>=bf[j])&&(j<=lenb))
{
c[k]=bf[j];
j++;
k++;
}
while((af[i]<bf[j])&&(i<=lena))
{
c[k]=af[i];
i++;
k++;
}
}while((i<=lena)&&(j<=lenb)); //当完成a或b任一个的检索后,将另一个全赋于c
for(;j<=lenb;j++)
{
c[k]=bf[j];
k++;
}
for(;i<=lena;i++)
{
c[k]=af[i];
k++;
}
return k; //返回c的长度
}
int main()
{
//a b的赋值并排列
int n_a=4;
cout<<"enter the nums"<<endl;
for(int j=1;j<=n_a;j++)
cin>>a[j];
int n_b=7;
cout<<"enter the nums"<<endl;
for( j=1;j<=n_b;j++)
cin>>b[j];
//合并ab于c
int i=merge(a,n_a,b,n_b)-1;
//输出
for(j=1;j<=i;j++)
cout<<c[j]<<" ";
cout<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -