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