#include char a[9] = { 'C', 'H', 'E', 'A', 'P', 'S', 'O', 'R', 'T' }; int main(void) { int i; int j; int p; int q; char x; i = j = sizeof a - 1; while (j > 1) { if (i > 1) x = a[--i]; else { x = a[j]; a[j--] = a[1]; } q = i; while ((p = q * 2) < j) { if (a[p + 1] >= a[p]) ++p; a[q] = a[p]; q = p; } if (p == j) { a[q] = a[p]; q = p; } while ((q > i) && (x > a[p = q / 2])) { a[q] = a[p]; q = p; } a[q] = x; for (p = 1;p < sizeof a;++p) putchar(a[p]); putchar('\n'); } return 0; }