You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在选择排序中展示每一轮迭代完成后的状态?

选择排序迭代过程展示实现方案

要展示选择排序每一轮迭代后的数组状态,只需在排序核心循环中,每完成一轮迭代就打印当前数组即可。具体修改如下:

修改sort方法

在选择排序的外层for循环中,每完成一次最小元素定位(无论是否需要交换)后,调用你已实现的arrayToString方法打印当前数组,并标注轮次:

public static void sort(int[] a)
// Sort the contents of array a in ascending numerical order
{
    for(int i=0; i<a.length-1; i++)
    {
        int pos = smallestPosFrom(i,a);
        // 仅当当前元素不是最小元素时执行交换
        if (pos != i) {
            swap(a,i,pos);
        }
        // 打印当前轮次迭代后的数组状态
        System.out.printf("第%d轮迭代后:%s%n", i+1, arrayToString(a));
    }
}

效果示例

运行你的主方法后,输出会包含排序前的数组、每一轮迭代后的数组状态,以及最终排序完成的数组。例如输入数组为[3|1|4|2]时,输出如下:

The array you entered is:
[3|1|4|2]
第1轮迭代后:[1|3|4|2]
第2轮迭代后:[1|2|4|3]
第3轮迭代后:[1|2|3|4]
After sorting, the array is:
[1|2|3|4]

逻辑说明

选择排序的每一轮外层循环对应一次完整迭代:核心是将未排序区间的最小元素放到已排序区间的末尾。无论是否发生元素交换,每轮循环结束后,前i+1个元素都是有序的,此时打印数组就能准确反映该轮迭代完成后的状态。

内容的提问来源于stack exchange,提问作者Aaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 14:12:06