python合并排序,Python递归排序
基本思路
归纳法是分治法的典型应用。
1.首先返回分解组,然后合并这些组。基本思想是将数组分解到最小值,然后合并两个有序数组。
2.基本思路是比较两个数组前面的数字,谁最小谁先取,然后取对应的指针后移。
然后比较直到一组空了,最后复制另一组剩下的。
实例
#合并排序
def merge _ sort(list):
合并排序
n=len(列表)
ifn=1:
退货清单
else:
mid=n//2
#left表示通过合并和排序形成的有序的新列表。
left _ Li=merge _ sort(list[: mid])
#right表示通过合并和排序形成的有序的新列表。
right _ Li=merge _ sort(list[mid :])
#将两个有序子序列合并成一个新的整体
#合并(左、右)
左指针,右指针=0,0
结果=[]
whileleft_pointerlen(左_li)和right_pointerlen(右_li):
ifleft _ Li[left _ pointer]=right _ Li[right _ pointer]:
result . append(left _ Li[左指针])
left_pointer=1
else:
result . append(right _ Li[右指针])
右指针=1
result=left _ Li[left _ pointer :]
result=right _ Li[right _ pointer :]
返回结果
if__name__==__main__:
list=[54,26,93,17,77,31,44,55,20]
打印(列表)
sorted _ list=merge _ sort(list)
print(sorted _ list)以上是python合并排序的基本思路。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。