交换排序和冒泡排序有什么区别?它们相同吗?

5
我在算法方面有点菜,所以一直在研究排序算法。我知道冒泡排序涉及将一个值与其相邻的值进行比较,如果左侧的值大于右侧的值,则进行交换。其复杂度为O(n^2)。我了解到交换排序似乎具有相同的特征和算法。我尝试研究交换排序,但得到的结果有限,而且它们有些相互矛盾。那么它们是相同的吗?
是冒泡排序属于交换排序还是反过来?
如果它们不同,有什么特征使它们不同?

1
也许贴出伪代码。 - erip
1个回答

7
唯一的区别在于它们比较元素的方式,冒泡排序通过遍历列表并交换元素。交换排序将一个元素与所有其他元素进行比较。
因此,当我们使用冒泡排序对数组进行排序时,我们将array[n]与array[n+1]进行比较。 使用交换排序时,在第一次遍历中,我们将array[1]与array[2]、array[3]...array[k]进行比较,然后在第二次遍历中将array[2]与array[3]、array[4]...array[k]进行比较等等。
交换算法可视化 - https://www.youtube.com/watch?v=v0ipy1h-TPM

非常感谢!!真的非常感激这个。 - Miko Vicin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接