?? merges.cpp
字號:
/*歸并--合并兩個有序的序列*/
#include<iostream.h>//歸并排序
#define MAXA 3
#define MAXB 4
#define MAXC 7
void merge(int A[], int Alen, int B[], int Blen, int C[]);
int main()
{
int i,*pa,*pb,*pc,n1,n2,n3,a[MAXA],b[MAXB],c[MAXC];
n1=MAXA;
n2=MAXB;
n3=MAXC;
pa=a;
pb=b;
pc=c;
cout<<"Input "<<n1<<" number for sorting(A) :"<<endl;
for(i=0;i<MAXA;i++)
{
cin>>a[i];
}
cout<<endl;
cout<<"Input "<<n2<<" number for sorting(B) :"<<endl;
for(i=0;i<MAXB;i++)
{
cin>>b[i];
}
cout<<endl;
merge(a,n1,b,n2,c);
cout<<"After insert_sort:"<<endl;
for(i=0;i<MAXC;i++)
{
cout<<c[i]<<" ";
}
cout<<endl;
return 0;
}
void merge(int A[], int Alen, int B[], int Blen, int C[])//歸并排序
{
int i=0,j=0,k=0;
while(i<Alen&&j<Blen)//a,b數組都不為空
{
if(A[i]<B[j])
C[k++]=A[i++];
else
C[k++]=B[j++];
}
while(i<Alen)//如果b為空,a的后一部分直接給c
C[k++]=A[i++];
while(j<Blen)
C[k++]=B[j++];
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -