最简单的排序之一——插入排序(扑克牌)

本文通过模拟摸牌插牌过程,详细解释了插入排序的原理。使用Python中的列表插入和弹出元素操作,逐步将无序区的元素正确插入到有序区,实现升序排序。结合扑克牌的例子,使得插入排序的概念更易理解。
摘要由CSDN通过智能技术生成
欢迎关注,敬请点赞!

最简单的排序之一——插入排序

【关键字】:

  • 插入排序
  • 摸牌插牌

【摘要】:

  • 模拟摸牌插牌过程
  • 本文使用的主要函数:(1) 列表插入元素:list.insert(index) ,指定下标插入,后面顺延;(2)列表弹出元素:list.pop(index)

插牌

过程分析:

返回顶部
思路:
(1)列表分为有序区和无序区,最初有序区只有一个元素,即外循环范围从list[1]开始,至list末尾;
(2)从无序区取数(相当于从桌上抓牌);
(3)将取到的数(抓到的牌)插入到手中的有序牌中,和原有的牌依次比较确定位置;
(4)以升序为例。

  • 程序段展示:

for i in range(1,len(list3)):
    temp = list3.pop(i) #从无序区摸牌(第i+1张)
#    print(f'第{i + 1}次摸牌:手中有序牌{list3[:i]},刚摸到的牌{temp}')
    for j in range(i): #当前手上有序牌共i张
        if temp <= list3[j]:break  # 与手中的有序牌从小到大比较,如果抓到的牌小,则停止
    else:j = i  # 如果抓到的牌是最大的,放在有序牌最后
    list3.insert(j, temp)
#    if len(list3[i+1:]): #判断桌上是否还有牌
#        print(f'插入后有序牌{list3[:i+1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值