在选择排序算法的主/外循环的前三个迭代之后给出列表的状态

问题描述

所以我们给我们的清单是

A = [12,6,5,8,10,3,2]

我们无需编写任何代码,只需将答案写在文本文件中即可。我的猜测是列表 将在选择排序的主/外循环之后按顺序排列,所以我的答案是

[2,12]

我认为这是错误

解决方法

在选择排序中,我们在原始数组之外维护两个子数组: 排序部分和未排序部分。 A = [12,6,5,8,10,3,2] 这是你的初始数组

iteration 1: 
      sorted subarray             unsorted subarray
             12                    6,2
 Result       2                    6,12

我们在未排序的子数组中搜索最小元素,即 2。在这里将 2 与 12 交换。

第二次迭代:我们现在将未排序子数组中的第一个元素视为已排序数组的第二个元素。请注意,位置 2 成立是因为它是整个数组的最小元素。再次,我们在未排序子数组中搜索最小元素,并与已排序子数组的第二个元素进行比较。如果前者较小,我们交换它们。

iteration 2:
             sorted subarray          unsorted subarray
                   2,6                   5,12
        Result     2,3                   5,12

未排序子数组中没有小于 5 的元素,因此保持不变。 因此,经过 3 次迭代后,最终状态将是: 2,12

iteration 3:
    sorted subarray          unsorted subarray
          2,5                 8,12
Result    2,12