排序算法之插入排序(python实现)

数据结构排序算法之插入排序(python实现)



前言

插入排序的基本思想:每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入位置。
即边插入边排序,保证子序列中随时都是排好序的。

插入排序的种类:
顺序法定位插入位置——直接插入排序
二分法定位插入位置——二分插入排序
缩小增量多遍插入排序——希尔排序


一、直接插入排序

1.基本思想

它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从前向后或从后向前扫描,找到相应位置并插入。

动图如下:
在这里插入图片描述

2.代码实现

代码如下(示例):

items = [10, 4, 5, 1, 3, 9, 7]
def s_insertSort(items):
    item = items.copy()
    number = len(items)
    for i in range(0,number):
        if i != 0:		# i相当于哨兵,记录每次插入到第几个数,即前i-1个数已经有序,这里判定是第一次插入,不需要交换位置,所以写了一个非的条件判定
            for j in range(0,i):	# 从前i-1个有序数列里查找,并完成插入
                if item[j] > item[i]:
         
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值