#include <algorithm>
void sort(unsigned *a, int n)
{
long gap = n;
while (gap > 1) {
gap /= 2;
for (long i = 0; i < n - gap; ++i) {
long end = i;
long temp = Array[end + gap];
while (end >= 0) {
if (a[end] > temp) {
a[end + gap] = a[end];
end -= gap;
} else {
break;
}
a[end + gap] = temp;
}
}
}
}