Test Message

a104: 排序

內容

幫我排個數字謝謝 QQ


輸入

有多筆測資以 EOF 為結束

第一行有一個正整數 n(1<=n<=1000),代表有幾個數字要請你幫忙排

第二行有 n 個可以用 int 儲存的正整數

6
7 9 0 4 1 8
8
1 9 9 0 0 9 2 8

輸出

輸出 n 個已由小到大排序好的正整數

0 1 4 7 8 9
0 0 1 2 8 9 9 9


解題思路

插入排序法


完整程式碼

AC (4ms, 92KB)
#include <stdio.h>
#define SWAP(x, y) \
x = x ^ y, \
y = x ^ y, \
x = x ^ y

int n, list[1010];

int main()
{
while (scanf(" %d", &n) == 1)
{
scanf(" %d", &list[0]);
for (int i = 1; i < n; i++)
{
scanf(" %d", &list[i]);
for (int j = i; j && list[j] < list[j - 1]; j--)
SWAP(list[j], list[j - 1]);
}
for (int i = 0; i < n; i++)
printf("%d ", list[i]);
putchar('\n');
}
return 0;
}