Pagini recente » Cod sursa (job #3152881) | Cod sursa (job #70635) | Cod sursa (job #237454) | Cod sursa (job #433798) | Cod sursa (job #1239793)
#include <iostream>
#include <cstdio>
#define MAXN 500010
using namespace std;
int n, a[MAXN];
void shellSort()
{
int h=1;
while (h < n/3) h *= 3;
while(h)
{
for (int i = h; i < n; i++)
for (int j = i; j >= h && a[j]<a[j-h]; j-=h)
{int aux = a[j]; a[j] = a[j-h]; a[j-h] = aux;}
h/=3;
}
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
shellSort();
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}