欢迎关注,敬请点赞!
【关键字】:
- 插入排序
- 摸牌插牌
【摘要】:
- 模拟摸牌插牌过程
- 本文使用的主要函数:(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]