#include <stdio.h>
void sort_descending(int data[], int count)
{
int i, j;
for(i = 0; i < count - 1; ++i) // 0부터 count - 1 (마지막 원소를 빼고~)
{
for(j = i + 1; j < count; ++j) // i 바로 다음 원소부터 끝까지
{
/* i가 왼쪽, j가 오른쪽이니까 */
if(data[i] < data[j]) // 이렇게 오름차순이면
{
// 둘의 위치를 서로 바꿔버리자~
int temp;
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
}
int main() {
int i;
int data[] = {1, 2, 9, 7, 9, 4, 10, 100, 99, 77, 1, 1000};
sort_descending(data, sizeof data / sizeof data[0]);
for(i = 0; i < sizeof data / sizeof data[0]; ++i)
printf("%d ", data[i]);
putchar('\n');
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHNvcnRfZGVzY2VuZGluZyhpbnQgZGF0YVtdLCBpbnQgY291bnQpCnsKCWludCBpLCBqOwoJZm9yKGkgPSAwOyBpIDwgY291bnQgLSAxOyArK2kpIC8vIDDrtoDthLAgY291bnQgLSAxICjrp4jsp4Drp4kg7JuQ7IaM66W8IOu5vOqzoH4pCgl7CgkJZm9yKGogPSBpICsgMTsgaiA8IGNvdW50OyArK2opIC8vIGkg67CU66GcIOuLpOydjCDsm5DshozrtoDthLAg64Gd6rmM7KeACgkJewoJCQkvKiBp6rCAIOyZvOyqvSwgauqwgCDsmKTrpbjsqr3snbTri4jquYwgKi8KCQkJaWYoZGF0YVtpXSA8IGRhdGFbal0pIC8vIOydtOugh+qyjCDsmKTrpoTssKjsiJzsnbTrqbQKCQkJewoJCQkJLy8g65GY7J2YIOychOy5mOulvCDshJzroZwg67CU6r+U67KE66as7J6QfgoJCQkJaW50IHRlbXA7CgkJCQl0ZW1wID0gZGF0YVtpXTsKCQkJCWRhdGFbaV0gPSBkYXRhW2pdOwoJCQkJZGF0YVtqXSA9IHRlbXA7CgkJCX0KCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJaW50IGk7CglpbnQgZGF0YVtdID0gezEsIDIsIDksIDcsIDksIDQsIDEwLCAxMDAsIDk5LCA3NywgMSwgMTAwMH07CgkKCXNvcnRfZGVzY2VuZGluZyhkYXRhLCBzaXplb2YgZGF0YSAvIHNpemVvZiBkYXRhWzBdKTsKCQoJZm9yKGkgPSAwOyBpIDwgc2l6ZW9mIGRhdGEgLyBzaXplb2YgZGF0YVswXTsgKytpKQoJCXByaW50ZigiJWQgIiwgZGF0YVtpXSk7CgkJCglwdXRjaGFyKCdcbicpOwoJcmV0dXJuIDA7Cn0=