Problem A: 插入排序
[Creator : ]
Description
输入n(n<=100) 和 n 个0到1亿的整数,然后将这些数字从大到小排序。
n次大循环。
第i次大循环中,记录要插入的数字 a[i]
从第 i 个元素开始,如果前面一个数字比待插入数字大,则往后面挪动一格。
直到前面一张牌不大于待插入牌,或者到最左边。
将待插牌插入到空格里面去
#include<cstdio>
using namespace std;
int a[10100], n;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
for (int i = 1; i <= n; i++) {
int now = ______, j;
// 记录一下待插牌,等下还要放回去
for (j = _____; _____; _____)
if (_____)
_____= _____
else break;
______ = ______;
}
for (int i = 1; i <= n; i++) {
printf("%d ", a[i]);
}
return 0;
}
Sample Input Copy
5
1 3 5 7 9
Sample Output Copy
9 7 5 3 1