交换排序和冒泡排序之间的区别是什么?它们是一样的吗?

时间:2016-11-24 12:26:00

标签: algorithm sorting data-structures

我在算法中是一个菜鸟,所以我一直在研究排序算法。我知道冒泡排序与比较一个值与它的邻居和交换,如果左边的那个大于右边。复杂性为O(n^2)。我遇到了交换排序,它似乎具有相同的特征和算法。我尝试过对交换排序的研究,但我得到的结果是有限的,它们有点矛盾。他们也一样吗?

冒泡排序是一种交换排序还是反过来?

如果它们不同,哪些特征会使它们与众不同?

1 个答案:

答案 0 :(得分:4)

唯一的区别在于它们比较元素的方式,冒泡排序通过列表和交换元素。 Exchange排序将一个元素与所有其他元素进行比较。

因此,当我们使用冒泡排序对数组进行排序时,我们将array [n]与array [n + 1]进行比较。 通过交换排序,我们在第一遍中比较array [1]和array [2],array [3] ... array [k],然后在array [3],array [4] ... array中比较array [2] [k]在第二关等等。

交换算法可视化 - https://www.youtube.com/watch?v=v0ipy1h-TPM