算法设计:
代码:
#include <iostream>
using namespace std;
void merge(int A[], int B[], int C[], int p, int r){
int i=0, j=0, k=0;
while(i<p && j<r){
if (A[i]<=B[j]){
C[k]=A[i];
i+=1; // i=i+1;
k+=1; // k=k+1;
}
else{
C[k]=B[j];
j+=1; // j=j+1;
k+=1; // k=k+1;
}
}
if(i==p){
while(j<r){
C[k]=B[j];
j+=1; // j=j+1;
k+=1; // k=k+1;
}
}
else{
while(i<p){
C[k]=A[i];
i+=1; // i=i+1;
k+=1; // k=k+1;
}
}
}
int main()
{
int A[] = { 2, 3, 4, 6, 9}, B[] = { 1, 3, 7, 8, 10};
int p = sizeof(A)/sizeof(int);
int r = sizeof(B)/sizeof(int);
int n = p+r;
int C[n];
merge(A, B, C, p, r);
for(int i=0; i<n; i++)cout<<C[i]<<", ";
cout << endl;
return 0;
}
运行截图: