#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int main() { int n; cin >> n; int a[n]; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) cin >> a[i]; int len = n; while(len>1) { len = len/3 + 1;//在这里取3作为递增数,实际上3不是最快的,具体参考大话数据结构 for(int i=len+1;i<=n;i++) { if(a[i]<a[i-len]) { a[0] = a[i]; int j; for(j=i-len;j>0&&a[0]<a[j];j=j-len) a[j+len]=a[j];//这里以len为循环节 a[j+len]=a[0];//插入数 } } } for(int i=1;i<=n;i++) cout << a[i] << endl; return 0; }