插入排序的Python实现

插入排序分析

输入: 长度为length的无序列表 返回值: 按照升序排好序的数组 插入排序的基本原理,是从第2项开始遍历到最后一项,每次遍历的起始项之前是一个排好序的列表,在第n次遍历的时候,在排序好的长度n列表中找到正确的位置,将第n个元素插入,得到一个长度为n+1的数组,接着开始n+1次遍历。

图解

例: [4, 9, 3, 5, 0, 2]

代码实现

def insert_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1

        while j >= 0 and arr[j] > key:
            arr[j+1] = arr[j]
            j -= 1

        arr[j+1] = key
    return arr

if __name__ == '__main__':
		arr = [4, 9, 3, 5, 0, 2]
		insert_sort(arr)
		print(arr)
复制代码

在Python中,List是可变类型,所以上述函数的写法将会在列表的原处改动,如果不希望改动,可以使用深拷贝将列表复制后排序,或将元素添加到新的列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值