提交时间:2023-11-16 21:07:10
运行 ID: 31142
#include<bits/stdc++.h> using namespace std; int num[100005]; int tmp[100005]; void merger(int l,int mid,int r){ int i=l,j=mid+1,m=l; while(i<=mid&&j<=r){ if(num[i]<num[j]){ tmp[m++]=num[j++]; } else{ tmp[m++]=num[i++]; } } while(i<=mid){ tmp[m++]=num[i++]; } while(j<=r){ tmp[m++]=num[j++]; } for(int i=l;i<=r;i++){ num[i]=tmp[i]; } } void mergersort(int l,int r){ if(l>=r) return; int mid=(l+r)>>1; mergersort(l,mid); mergersort(mid+1,r); merger(l,mid,r); } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>num[i]; } mergersort(1,n); int k; cin>>k; for(int i=1;i<=k;i++){ cout << num[i] <<endl; } return 0; }