橘子橘子橘子橘子 2023-04-08 12:17 采纳率: 100%
浏览 67
已结题

关于#Python#的问题如何解决?

手里有一副五张已经排好序的扑克牌(3 4 8 9 11),然后抓了一张六,如何用Python语言写一个插入排序的代码将这个六插入进去,要具体代码,感恩!
大概就是把图片这样的VB写法改成Python😭

img

  • 写回答

3条回答 默认 最新

  • 语言-逆行者 2023-04-08 12:22
    关注

    img

    
    cards = [3, 4, 8, 9, 11] # 已排序的牌
    new_card = 6 # 新牌
    
    # 插入排序
    for i in range(1, len(cards)):
        key = cards[i]
        j = i - 1
        while j >= 0 and key < cards[j]:
            cards[j+1] = cards[j]
            j -= 1
        cards[j+1] = key
    
    # 将新牌插入已排序的牌中
    cards.append(new_card)
    for i in range(len(cards)-1, 0, -1):
        if cards[i] < cards[i-1]:
            cards[i], cards[i-1] = cards[i-1], cards[i]
    
    print(cards) # 输出结果:[3, 4, 6, 8, 9, 11]
    

    代码解释:

    • 首先定义已排序的扑克牌 cards 和待插入的扑克牌 new_card。
    • 使用插入排序算法,从第二张牌开始(即 i = 1),依次将每张牌与前面已排好序的牌进行比较。
    • 如果待插入的牌比前面的某张牌小,就将前面的牌往后移动一位,直到找到待插入的位置。
    • 将待插入的牌放到找到的位置上。
    • 循环结束后,输出已排好序的扑克牌 cards,结果为 [3, 4, 6, 8, 9, 11],表示插入成功。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月8日
  • 已采纳回答 4月8日
  • 修改了问题 4月8日
  • 创建了问题 4月8日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改