#include<bits/stdc++.h>
using namespace std;
void Merge(int b[],int c[],int a[],int p,int q){
int i=0,j=0,k=0;
while(i<p&&j<q){
if(b[i]>c[j]){
a[k]=c[j];
j++;
}
else{
a[k]=b[i];
i++;
}
k++;
}
if(i==p){
for(int y=j;j<q;j++){
a[k]=c[j];
k++;
}
}
else{
for(int y=i;i<p;i++){
a[k]=b[i];
k++;
}
}
}
void MergeSort(int a[],int n){
if(n>1){
int b[1000];
int i=0;
for( i=0;i<=n/2-1;i++){
b[i]=a[i];
}
int c[1000];
int j=0;
for(int q=n/2;q<=n-1;q++){
c[j]=a[q];
j++;
}
MergeSort(b,i);
MergeSort(c,j);
Merge(b,c, a,i,j);
}
}
int main(){
int a[1000]={0};
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
MergeSort(a,n);
for(int i=1;i<=n;i++){
cout<<a[i-1];
if(i==n){
break;
}
if(i%10==0&&i!=n){
cout<<endl;
continue;
}
cout<<" ";
}
cout<<endl;
return 0;
}
合并排序(c++实现)
于 2022-11-01 21:57:04 首次发布