社区讨论
站外题求解……
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m2yqajpl
- 此快照首次捕获于
- 2024/11/01 20:46 去年
- 此快照最后确认于
- 2025/11/04 15:35 4 个月前
为了帮助AC鸭更好的理解选择排序,AC鸭的老师马老师留下了这么一道家庭作业:
马老师给了一个长度为
n 的数组
a,数组下标从
1 开始,并且数组中的所有元素均为非负整数。AC鸭需要将这个数组进行选择排序,然后输出排序后的序列。
但是粗心的AC鸭抄代码时将内层循环条件中的
i,代码如下:
CPPfor (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鸭找到错误。
样例:
CPP输入:
10
8 6 9 5 3 11 3 1 2 10
CPP输出:
8 6 1 3 2 3 5 9 10 11
回复
共 0 条回复,欢迎继续交流。
正在加载回复...