插入排序是一种怎样的排序
先来一段python代码:
# coding: utf-8
"""
插入排序,一般也被称为直接插入排序。
对于少量元素的排序,它是一个有效的算法。
插入排序是一种最简单的排序方法,
它的基本思想是将一个记录插入到已经排好序的有序表中,
从而形成一个新的、记录数增1的有序表。
在其实现过程使用双层循环,
外层循环针对除了第一个元素之外的所有元素,
内层循环针对当前元素前面的有序表进行待插入位置的查找,
并进行移动
"""
unsorted = [4, 2, 1, 3]
print(unsorted)
if __name__ == '__main__':
for index in range(1, len(unsorted)):
# 从当前下标一直找到表头
# index用于控制从哪儿开始找,change_index用于控制交换条件
change_index = index
while unsorted[change_index - 1] > unsorted[change_index] and\
change_index > 0:
unsorted[change_index - 1], unsorted[change_index] =\
unsorted[change_index], unsorted[change_index - 1]
print(unsorted)
change_index -= 1
以下是代码的运行结果:
[4, 2, 1, 3]
[2, 4, 1, 3]
[2, 1, 4, 3]
[1, 2, 4, 3]
[1, 2, 3, 4]
为了对插入排序有更形象的了解,再来一组图片:
[4, 2, 1, 3]
[2, 4, 1, 3]
[2, 1, 4, 3]
[1, 2, 4, 3]
[1, 2, 3, 4]