返回题目列表
COMP2521
排序 · 升序排序
排序 · 把数组升序排好
读入一串整数,把它们从小到大排好后输出。用哪种排序都行——这里给的脚手架是插入排序:左边维护一个有序区,把右边每个元素插到它该在的位置。
请补全 sortAsc:从 i = 1 开始,取出 key = a[i],把左边比 key 大的元素逐个右移,腾出位置后把 key 放进去。
易错点(正是错误实验室里的坑):① 内层一定要用while而不是if——key 可能要越过左边好几个更大的元素,if只挪一次会插不到位。② 比较右移的条件是a[j] > key(严格大于);写成>=虽然结果仍升序,但会破坏「稳定性」。③ 注意下标边界j >= 0,别越过数组左端。
输入
- 第 1 行:整数
n(元素个数,可能为0)。 - 第 2 行:
n个整数,空格分隔。
输出
- 一行:升序排好的数组,每个值后跟一个空格。
示例:输入 5 / 5 2 8 1 9 → 输出 1 2 5 8 9 。
样例
stdin
5 5 2 8 1 9
期望输出
1 2 5 8 9
stdin
1 42
期望输出
42
c-dcc
14