选择排序:经过几遍之后,列表才被排序?

时间:2018-12-15 18:31:53

标签: python python-3.x sorting

在学习即将进行的测试时,我发现了这个问题:

  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通过之后,我的列表将被排序。我究竟做错了什么?这只是一个选择题,没有背景,只有问题本身。

1 个答案:

答案 0 :(得分:0)

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

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

action

中,这也是一个很好的选择排序示例