Kaito_Shinichi @ 2024-11-01 20:44:55
为了帮助AC鸭更好的理解选择排序,AC鸭的老师马老师留下了这么一道家庭作业:
马老师给了一个长度为
n 的数组
a,数组下标从
1 开始,并且数组中的所有元素均为非负整数。AC鸭需要将这个数组进行选择排序,然后输出排序后的序列。
但是粗心的AC鸭抄代码时将内层循环条件中的
i,代码如下:
for (int i = 1; i <= n; i++){
int max_idx = n-i+1;
for (int j = n-i+1; j >= i; j--)
if (a[j] > a[max_idx])
max_idx=j;
swap(a[n-i+1], a[max_idx]);
}
这个代码竟然通过了样例。但聪明的你一定发现了,这样写实际上是错误的,并不能将整个序列进行排序。现在对于给出的数组,你需要输出用AC鸭的代码进行排序后的数组,来帮助AC鸭找到错误。
样例:
输入:
10
8 6 9 5 3 11 3 1 2 10
输出:
8 6 1 3 2 3 5 9 10 11