排序算法之插入排序法

文章介绍了插入排序法的基本原理和过程,通过一个数列示例展示了从小到大排序的过程,并提供了相应的Python代码实现。在代码中,定义了insertion_sort函数用于执行插入排序,然后展示并打印排序前后的数据。
摘要由CSDN通过智能技术生成

插入排序法



前言

插入排序法(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版,清华大学出版社。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值