希尔排序是插入排序的扩展
#include <iostream>
using namespace std;
int arr[1001];
shell_sort(int n, int ad){ //增量
for(int i = ad; i < n; i++){
int tmp = arr[i];
int j = i - ad;
while(j >= 0){
if(tmp < arr[j]) arr[j+ad] = arr[j];
else break;
j -= ad;
}
arr[j+ad] = tmp;
}
}
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> arr[i];
shell_sort(n, 5);
shell_sort(n, 3);
shell_sort(n, 1);
for(int i = 0; i < n; i++) cout << arr[i] << " ";
}