-3

L1 = [9, 8, 7, 6, 5, 4, 3, 2, 1]
L2 = [8, 1, 3, 6, 9, 7, 4, 2, 5]

L1由于元素按非升序排列,会导致冒泡排序进行更多交换吗?我真的不明白是什么决定了bubblesort做更多/更少的交换。

4

1 回答 1

1

的,L2 会让冒泡排序做更多的交换。冒泡排序被严重减慢turtles(即靠近列表末尾的小数字)。Rabbits(即,代码开头附近的大量数字)被快速交换并且无关紧要,而海龟在列表中缓慢地向前移动,每次迭代一次。

这就是为什么您几乎从不在任何繁重的排序代码中使用冒泡排序的原因。介绍排序鸡尾酒排序是冒泡排序的更好变体。

我不明白你为什么在这里问这个问题,以及为什么你用/标记了这个问题python(尽管这我首先看到这个问题的唯一原因)。

于 2012-04-23T18:07:33.170 回答