在学习即将进行的测试时,我发现了这个问题:
[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
通过之后,我的列表将被排序。我究竟做错了什么?这只是一个选择题,没有背景,只有问题本身。
答案 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]
中,这也是一个很好的选择排序示例