我试图了解一些排序算法,但是我正努力查看气泡排序和插入排序算法的区别。
我知道两者都是O(n 2),但是在我看来,冒泡排序只是将每次通过时数组的最大值冒泡到顶部,而插入排序只会使每次通过时将最小值沉到底部。他们不是在做完全相同的事情,只是朝不同的方向做吗?
对于插入排序,比较/潜在交换的次数从零开始,并且每次都增加(即0、1、2、3、4,...,n),但对于冒泡排序,会发生相同的行为,但是在结束时排序(即n,n-1,n-2,... 0),因为气泡排序在排序时不再需要与最后一个元素进行比较。
尽管如此,似乎人们普遍认为插入排序通常更好。谁能告诉我为什么?
编辑:我主要是对算法工作方式的差异感兴趣,而不是它们的效率或渐进复杂性。