好程序员Python学习路线分享实现归并排序算法


归并排序1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(分治法)的一个非常典型的应用,且各层分治递归可以同时进行。



将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。



排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。



(请在发表文章时插入ms.webp这张图片)



' ' ' python

合并(左,右):

我j==

结果=[]

length_left=len(左)

length_right=len(右)

我& lt;length_left j & lt;length_right:

左[我]& lt;=[j]:

result.append(左[我])我+=

:

result.append(右[j]) j +=

result.extend(左[我])

result.extend(右[j:])

merge_sort结果(列表):

长度=len(列表)

& lt;长度=:

列表

=长度/中期/

左=merge_sort(列表(中期):)

=merge_sort(列表[中期:])

合并(左、右)


数量=(,,,,,,,,,)

merge_sort(数字)==(,,,,,,,,,)

' ' '




好程序员Python学习路线分享实现归并排序算法