微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

所以我们给我们的清单是

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。