社区讨论

站外题求解……

学术版参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m2yqajpl
此快照首次捕获于
2024/11/01 20:46
去年
此快照最后确认于
2025/11/04 15:35
4 个月前
查看原帖
为了帮助AC鸭更好的理解选择排序,AC鸭的老师马老师留下了这么一道家庭作业:
马老师给了一个长度为
n 的数组
a,数组下标从
1 开始,并且数组中的所有元素均为非负整数。AC鸭需要将这个数组进行选择排序,然后输出排序后的序列。
但是粗心的AC鸭抄代码时将内层循环条件中的
i,代码如下:
CPP
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鸭找到错误。
样例:
CPP
输入:
10
8 6 9 5 3 11 3 1 2 10

CPP
输出:
8 6 1 3 2 3 5 9 10 11

回复

0 条回复,欢迎继续交流。

正在加载回复...