希尔排序
#include
using namespace std;
int main(void)
{
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) cin >> arr[n];
// 希尔排序
for (int gap = n/2; gap > 0; gap = gap/2)
{
for (int i = gap; i < n; i++)
{
int value = arr[i];
int p = i;
while(p > 0 && (p-gap) >= 0 && arr[p-gap] > value)
{
arr[p] = arr[p-gap];
p = p - gap;
}
arr[p] = value;
}
}
for (int i = 0; i < n; i++) cout << arr[i] << ' ';
cout << endl;
return 0;
}