Python中插入排序

“”"
插入排序:必须有一个新的列表,空间换时间
0 1 2 3 4 5 6
a = [99,88,11,22,55,66,77]
从堆里面拿一张
0
b = [99]
88过来了 88和99比较,放在 0 的位置
0 1
[88,99]
11过来了 会和所有元素比较,放在 0 的位置
0 1 2
[11,88,99]
22过来了 和11(0)比较,在11的后面,放在 1 的位置
0 1 2 3
[11,22,88,99]
55过来了 和22(1)比较,在22的后面,放在 2 的位置
0 1 2 3 4
[11,22,55,88,99]
66过来了 和55(2)比较,在55的后面,放在 3 的位置
0 1 2 3 4 5
[11,22,55,66,88,99]
77过来了 和66(3)比较,在55的后面,放在 4 的位置
0 1 2 3 4 5 6
[11,22,55,66,77,88,99]

“”"

list = [99,88,11,22,55,66,77]
print("排序之前:%s"%list)
list_sorted = [] #定义一个新的列表,存储排序之后,打牌,左手已经抓牌

for item in list:
    #(1)确定位置,放在那里
    index = 0#存储位置
    last = len(list_sorted)-1 #最后一个元素的下标
    for i in range(last,-1,-1): #i的值【最后下标,0)
        if item > list_sorted[i]:
            index = i + 1#放在后面位置
            break
    #(2)放进去
    list_sorted.insert(index,item)
print("排序之后:%s"%list_sorted)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值