插入排序

插入排序:首先假设队列左边的元素是已经排序过的元素
依次遍历已排序过的元素右边的元素,将该元素与左边已排序的元素做比较
,这样左侧已排序的元素个数就会依次增加
重复第二步,直到所有的元素全部排序完成。
插入排序的代码实现如下:

def insertion_sort(arr):
    length = len(arr)
    i = 1 # 从位置1开始向右遍历,因为我们假设位置0上的元素(即最左边的元素已经排好了序)
    while i < length:
        j = i # j表示当前已排好序的数字的结束位置
        while j > 0:
            if arr[j-1]>arr[j]:
                arr[j-1],arr[j]=arr[j],arr[j-1]
            j = j - 1 # 持续遍历已经排好序的部分
        i = i + 1
    return arr
data = [6,5,3,1,8,7,2,4]
a = insertion_sort(data)
print(a)

注:python中不支持 ++ ,–操作

运行结果如下:

[1, 2, 3, 4, 5, 6, 7, 8]

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值