【算法打卡60天】Day9排序(上):为什么插入排序比冒泡排序更受欢迎?

打卡Day9
学习内容 : 排序(上):为什么插入排序比冒泡排序更受欢迎?
一提到算法,想到的都是这些具体的算法,冒泡排序、插入排序、快速排序等等,如何把算法应用到具体的应用中,遇到问题时,选择哪种算法更合适一些,这些都是应该考虑的。
【今日收获】
1.如何分析一个“排序算法”?
排序算法的执行效率

  1. 最好情况、最坏情况、平均情况时间复杂度
  2. 时间复杂度的系数、常数 、低阶
  3. 比较次数和交换(或移动)次数

排序算法的内存消耗
原地排序算法,就是特指空间复杂度是 O(1) 的排序算法。

排序算法的稳定性
稳定排序算法可以保持金额相同的两个对象,在排序之后的前后顺序不变。

2.冒泡排序的原理和性能分析
1.冒泡排序是原地排序算法
2.冒泡排序是稳定的排序算法
3.冒泡排序平均情况下的时间复杂度就是O(n2)

3.插入排序的原理和性能分析
1.插入排序是原地排序算法
2.插入排序是稳定的排序算法
3.插入排序平均情况下的时间复杂度就是O(n2)

4.选择排序的原理和性能分析
择排序每次会从未排序区间中找到最小的元素,将其放到已排序区间的末尾。
1.插入排序是原地排序算法
2.插入排序不是稳定的排序算法,因为选择排序每次都要找剩余未排序元素中的最小值,并和前面的元素交换位置,这样破坏了稳定性。
3.选择排序平均情况下的时间复杂度就是O(n2)
本文参考【极客时间】专栏《数据结构与算法之美》。

你可能感兴趣的:(【算法打卡60天】Day9排序(上):为什么插入排序比冒泡排序更受欢迎?)