选择排序:经过多少次后,列表将被排序



在为即将到来的测试学习时,我发现了这个问题:

  1. 我们的排序代码完成了算法的所有过程,即使列表在最后一次通过。列表[9, 8, 6, 4, 3, 1]上的选择排序算法经过多少次之后我们可以停下来吗,因为名单已经排序了

根据我对Selection Sort Algorithm的理解,我的答案是7:

[9, 8, 6, 4, 3, 1]
[9, 8, 6, 4, 3, 1]
[8, 9, 6, 4, 3, 1]
[6, 8, 9, 4, 3, 1]
[4, 6, 8, 9, 3, 1]
[3, 4, 6, 8, 9, 1]
[1, 3, 4, 6, 8, 9]

但根据我的教练的说法,3通过后,我的名单将被排序。我做错了什么?这只是一个选择题,没有任何背景,只有问题本身。

第一步应该是从当前元素(9(中找到数组(1(中最小的数字并切换它们的位置,第二步应该是找到下一个最小的元素(3(并将其与数组(8(中的下一个元素切换,依此类推。该算法通过与数组中尚未排序的所有元素进行比较来工作,因此运行时的最坏情况是O(n^2(。

看起来像:[9,8,6,4,3,1],[1,8,6,4,3,9],[1,3,6,4,8,9],[1,3,4,6,8,9]

这也是一个很好的例子,选择排序在行动

最新更新