最佳答案
我正在尝试理解一些排序算法,但是我很难看出冒泡排序和插入排序算法之间的区别。
我知道两者都是 O (n2) ,但是在我看来,冒泡排序只是在每次传递时将数组的最大值冒泡到顶部,而插入排序只是在每次传递时将最小值下沉到底部。他们不是在做完全相同的事情,只是方向不同吗?
对于插入排序,比较/潜在交换的次数从零开始,并且每次都会增加(即0,1,2,3,4,... ,n) ,但是对于冒泡排序,同样的行为会发生,但是在排序结束时(即 n,n-1,n-2,... 0) ,因为冒泡排序不再需要与排序后的元素进行比较。
尽管如此,似乎一致认为插入排序通常更好。有人能告诉我为什么吗?
编辑: 我主要感兴趣的是算法如何工作的差异,而不是它们的效率或渐近复杂度。