简单排序算法

Posted by kyle on March 17, 2019
  最好 最坏 平均 是否原地算法? 是否稳定?
冒泡排序 \( n \) \( n^2 \) \( n^2 \)
插入排序 \( n \) \( n^2 \) \( n^2 \)
选择排序 \( n^2 \) \( n^2 \) \( n^2 \) ×

时间复杂度

  • 有序度:数列中具有有序关系的元素对的个数
  • 逆序度:数列中有序关系颠倒的元素对的个数
  • 满有序度 = 有序度 + 逆序度 = \( \frac{n*(n-1)}{2} \)
  • 平均有序度 = (有序度 + 逆序度) / 2 = \( \frac{n*(n-1)}{4} \)

数列的逆序度即为冒泡排序和插入排序每次最少交换元素的次数。