-
排序总览
image.png
-
冒泡排序
image.png
插入一些小知识:
有序度 :a[j] < a[j+1]
逆序度 :a[j] > a[j+1]
满有序度 : 完全有序的数组,有序度是 n*(n-1)/2
逆序度 = 满有序度 - 有序度 = 交换次数
-
插入排序
image.png
-
选择排序:找到未排序最小元素和前面的数据交换,是一种不稳定排序。比如 5,8,5,2,9 这样一组数据,使用选择排序算法来排序的话,第一次找到最小元素 2,与第一个 5 交换位置,那第一个 5 和中间的 5 顺序就变了,所以就不稳定了。(直接pass)
-
总结:冒泡排序和插入排序都是稳定排序,且是一种原地排序--空间复杂度为O(1),时间复杂度都为O(n2)。但是由于冒泡排序的操作比插入排序复杂--冒泡排序需要3个赋值操作,而插入排序只需要1个。使得插入排序计算的更快,性能更优。所以插入排序更受欢迎。
image.png
-- 摘自《数据结构与算法之美》11节
网友评论