篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了算法插入排序法|排序相关的知识,希望对你有一定的参考价值。 篇首语:本文由编程笔记#自由互联小编为大家整理,主
篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了算法插入排序法 | 排序相关的知识,希望对你有一定的参考价值。
插入排序
- Insert Sort-
排序算法是算法领域十分经典的一类算法,它的名字通俗易懂:给数字排序,让一组无序的数据通过排序算法后,能增序或者降序地输出。
排序算法有很多种,本文来详细讲讲"插入排序法"。
(本文均是增序排序,降序排序同理即略)
No.1
算法理解
其实插入排序法很好理解,就像打牌时整理手上一堆无序的牌:将待排序的牌一一插入已排序中的合适位置。
如下图,就是将待排序的 7 插入已排序的 2 4 5 10的牌堆中。
如下图,1 7 8 13是已经排序好的部分,取出未排序的6,将其插入已排序的堆中。
需要先找到插入位置,再将插入位置之后的元素都向后移动一格,然后就能插入6了。
按照上面的方法,初始时所有的数字只有第一个是已排序的,后面均视为未排序部分。将未排序的数字一一插入已排序的合适位置,即完成了插入排序。
No.2
算法剖析
我们将待排序的 n 个数字均存在数组中,数组从下标 0 开始到 n - 1 结束。