插入排序法
前言
插入排序法(Insert Sort)是将数据中的元素逐一与已排序好的数据进行比较,先将前两个元素排好,再将第三个元素插入适当的位置,也就是说这三个元素仍是排好顺序的,接着将第四个元素加入,重复此上步骤,直到排序完成为止。
也可以将上述过程描述为一个一个的数据序列,从R1、R2、…、Ri中,插入新纪录R,使得i+1个记录排序。
提示:以下是本篇文章正文内容,下面案例可供参考
一、插入排序的过程
使用数列(57,20,97,82,6)来演示排序的过程。(从小到大排序)
排序规则:
首先使用第一个元素57作为数列的第一位,得到数列序列R1;步骤二中,第二个元素20和第一个元素57比较,原始数列中的第二个元素20应该置于原始数列第一个元素57的前面,得到数列序列R2;步骤三将原始数列的第三个元素97与数列序列R2中元素进行比较,将数据97放置再合适的位置,得到数列序列R3,接着将数据82和R3中元素进行比较,将数据放置在合适的位置,得到数列序列R4,以此类推,将最后一个元素比较完成后,结束排列。
二、代码实现
1.python代码
代码如下(示例):
def insertion_sort(arr):
for i in range(1,len(arr)):
key = arr[i]
j=i-1
while j>= 0 and key < arr[j]:
arr[j+1]=arr[j]
j -= 1
arr[j+1] = key
return arr
#打印数据
def showdata(data):
for i in range(len(data)):
print('%3d'%data[i],end='')
arr = [16,25,39,27,12,8,45,63]
print('原始数据为:')
showdata(arr)
insertion_sort(arr)
print('\n排序后的数据:')
showdata(arr)
2.输出结果
参考
参考书籍:
吴灿铭,胡昭民,《图解算法使用Python》第2版,清华大学出版社。