//1.两个排序不会,磨了一个小时
//2.学习一下神奇的插入排序写法。
//3.几路归并没说,所以枚举。
#include
#include
#include
using namespace std;
const int maxn = 110;
int n, a[maxn], b[maxn],c[maxn], ok;
void Merge(int a[]){
//传说中的归并排序写法,学习了。。。
//从底部往上,每次局部快排。。。
for(int i = 1; i <= n; i*=2){
for(int j = 0; j < n; j+=i){
if(j+i<=n)sort(a+1+j,a+1+j+i);
else sort(a+1+j,a+n+1);
}
//output
int ok = 1;
for(int j = 1; j <= n; j++)
if(a[j]!=b[j]){ok=0;break;}
if(ok){
cout<
i *= 2;//手动下一轮排序qwq(亏我之前还全局开关等下一轮)
for(int j = 0; j < n; j+=i){
if(j+i<=n)sort(a+j+1,a+j+i+1);
else sort(a+j+1,a+n+1);
}
for(int j = 1; j < n; j++)cout<
}
}
/*
if(l==r)return ;
int mid = (l+r)/2;
Merge(l,mid);
//for(int i = 1; i <= n; i++)cout<