#include <iostream>
using namespace std;
const int maxn = 100100;
int data[maxn];
int ans[maxn];
int data1[maxn];
void merge(int lo,int m, int hi) ;
void divid(int lo,int hi) {
if (hi>lo) {
int m=(hi+lo)/2;
divid(lo,m);
divid(m+1,hi);
merge(lo,m,hi);
}
else data1[hi] = data[hi];
}
void merge(int lo,int m, int hi) {
int i=lo,j=m+1,k=lo;
for (;i<=m&&j<=hi;k++) {
if(data1[i]<data1[j]) ans[k]=data1[i++];
else ans[k] = data1[j++];
}
if(i<=m)
for(;i<=m;i++,k++) ans[k] = data1[i];
if(j<=hi)
for(;j<=hi;j++,k++) ans[k] =data1[j];
for(int i=lo;i<=hi;i++) data1[i] = ans[i];
}
int main() {
int t; int integer;
int n;
while(cin>>n&&cin>>integer) {
if(!n&&!integer) break;
for (int i=1;i<=n;i++) {
cin>>data[i];
}
divid(1,n);
for(int i=1;i<=n;i+=integer) {
cout<<data1[i];
if(i+integer<=n) cout<<" ";}
cout<<endl;
}
}
Sorting Algorithm
最新推荐文章于 2020-05-21 22:22:17 发布