OlveraeUNSW
返回题目列表
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