插入排序 插入排序,英文名(insertionsort)是一种简单且有效的比较排序算法。 思想:在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置
插入排序插入排序,英文名(insertion sort)是一种简单且有效的比较排序算法。 思想: 在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置。重复该过程,直到所有输入元素都被选择一次,排序结束。 插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里;抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边。 因此,对所有的牌重复这样的操作,所以每一次都是插入最正确的排序顺序,直到牌抓完为止。 动画演示假设我们需要从小到大进行排序,动画演示如下: Go 代码实现
运行结果:
总结插入排序实现简单,理解也较容易,数据量较少时效率高,算法的实际运行效率优于选择排序和冒泡排序。 空间复杂度: 空间复杂度为 O(1),即不输入借助其他的辅助空间。 稳定性: 插入排序是稳定的排序算法,在键值相同时它能够保持输入数据的原有次序。 |
2022-04-28
2022-04-21
2022-05-13
2022-08-17
2022-02-25