特定的冒泡排序过程

时间:2012-04-26 13:06:10

标签: sorting loops bubble-sort

我正在复习考试,其中一个练习题如下:

在冒泡排序的两次迭代后给出数组的内容(假设在数组的左侧首先选择最低值

43 16 99 12 48 14 62

给出的答案是:

12 14 43 16 99 48 62

我一直在审查我的笔记,试图弄清楚为什么这是正确的答案,但我不明白为什么。我在谷歌和维基百科上找到了冒泡排序的例子,虽然这些对我来说很有意义,但它们也很简单,这更难。

有人可以解释12 14 43 16 99 48 62是如何回答的吗?

2 个答案:

答案 0 :(得分:2)

我对这一点感到困惑,因为确实很难看到,但是一旦你意识到他们是如何做到的,那就足够简单了。不过,这很愚蠢。

我们正在进行排序,以便最左边的数字在左边,但是我们从右边迭代。所以第一个测试是比较14和62,而不是交换;然后比较48和14,并交换;那么12和14,什么都不做,等等。一旦你到达左端,回到右端并再做一次,你将得到给定的解决方案。

答案 1 :(得分:0)

好的,这并没有给你的老师提供相同的答案,但这是(我希望)对泡沫排序的明确解释:

因为图片通常比单词更好:http://www.algolist.net/Algorithms/Sorting/Bubble_sort

在你的情况下,在第一次迭代之后:

43> 16 => 16 43 99 12 48 14 62

43< 99 => 16 43 99 12 48 14 62

99> 12 => 16 43 12 99 48 14 62

99> 48 => 16 43 12 48 99 14 62

99> 14 => 16 43 12 48 14 99 62

99> 62 => 16 43 12 48 14 62 99

第二次迭代:

16< 43 => 16 43 12 48 14 62 99

43> 12 => 16 12 43 48 14 62 99

43< 48 => 16 12 43 48 14 62 99

48> 14 => 16 12 43 14 48 62 99

48< 62 => 16 12 43 14 48 62 99

62< 99 => 16 12 43 14 48 62 99