加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用python冒泡排序稳定排序

发布时间:2020-12-20 13:38:17 所属栏目:Python 来源:网络整理
导读:所以,我得到了我的元组列表,按顺序排序.我缺少的是让排序稳定.. 我怎样才能使泡泡排序稳定? (保持对类似物品的订单) def bubble_sort_2nd_value(tuples_list): NEWLIST = [] ITEM_MOVE = 0 for i in tuples_list: NEWLIST.append(i) for i in range(len(NEW
所以,我得到了我的元组列表,按顺序排序.我缺少的是让排序稳定..

我怎样才能使泡泡排序稳定? (保持对类似物品的订单)

def bubble_sort_2nd_value(tuples_list):
    NEWLIST = []
    ITEM_MOVE = 0
    for i in tuples_list:
        NEWLIST.append(i)
    for i in range(len(NEWLIST)):
         for j in range(i+1,len(NEWLIST)):
             if(NEWLIST[j][1] < NEWLIST[i][1]):
                 ITEM_MOVE = 1
                 NEWLIST[j],NEWLIST[i] = NEWLIST[i],NEWLIST[j]

    if (ITEM_MOVE == 0):
        print(tuples_list)
    else:
        print(NEWLIST)

tuples_list =  [('h2',8),('h4',30),('h6',7),('h8',54),('h1',72),('h3',('h5',('h7',15),24)]

bubble_sort_2nd_value(tuples_list)

预期和测试结果比较:
显示元素0的输出
预期:[(‘h6’,(‘h5’,(‘h2’,(‘h3’,(‘h7’,(‘h9’,24),(‘h4’,(‘h8’,(‘h1’,72)]
实际:[(‘h6’,72)]
result_code bubble_14错误1

注意h2 / 3混合…需要修复它…我的意思是不稳定

解决方法

你现在能做的最好的事情就是明白为什么要切换这些物品.每一步都打印哪些项目正在更改.然后你可能会理解这种行为.

所以我去了,你没有比较当前项目与列表中的下一项,你将当前项目与列表中的所有以下项目进行比较.我所做出的改变可能会给你你想要的结果.

def bubble_sort_2nd_value(tuples_list):
    NEWLIST = []
    ITEM_MOVE = 0
    for i in tuples_list:
        NEWLIST.append(i)
    for i in range(len(NEWLIST)):
         for j in range(len(NEWLIST)-1):
             k=j+1
             if(NEWLIST[j][1] > NEWLIST[k][1]):
                 ITEM_MOVE = 1
                 NEWLIST[j],NEWLIST[k] = NEWLIST[k],24)]

bubble_sort_2nd_value(tuples_list)

所以你所做的不是100%冒泡排序.试试这个并告诉我你是否需要我解释你为什么不工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读