python递归排序算法,归并排序算法流程图
Python的算法一直让我们又爱又恨,但如果能灵活运用,就能大大提高我们代码编写过程的效率。我们来看看其中一种算法的灵活掌握,归并排序~
归并算法——小试牛刀
实例内容:
有一个无序列表如下:
list=[23,35,12,34,54,78,76,99]
要求:从小到大排序。
图示思路
Python 代码
归并排序理解:
1.根据递归二分法将数组分成两组(直到独立元素)。
2.按照自下而上的方法比较左右数组,同时比较两个数组的第一个位置,把小的放入空数组,然后把放入空数组的位置的指针后移一个,再继续和另一个数组的前一个位置比较,以此类推。当最后一个数组首先从堆栈中出来时,另一个数组中的所有元素都被追加到新数组中。
示例:
defmerge(a,b):
c=[]
h=j=0
白色透镜(a)和透镜(b):
国际财务报表法b[h]:
c .附加(a[j])
j=1
else:
附加(b[h])
h=1
ifj==len(a):
第:号
c .附录(一)
else:
第:号
c .附录(一)
returnc
defmerge_sort(列表):
iflen(列表)=1:
返回列表
middle=len(列表)/2
left=merge _ sort(lists[: middle])
right=merge _ sort(lists[middle :])
returnmerge(左,右)
if__name__==__main__:
a=[4,7,8,3,5,9]
Print _ sort(一)通过两组例子,相信你对归并排序有所了解~更多python实用知识,点击进入PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。