使用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) 预期和测试结果比较: 注意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%冒泡排序.试试这个并告诉我你是否需要我解释你为什么不工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |