插入排序是一种怎样的排序
先来一段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 = indexwhile 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]
