首页 / 知识

python 归并排序

2023-11-12 13:30:00

原理

归并操作(归并算法),指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。

步骤

1.迭代法

申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列

设定两个指针,最初位置分别为两个已经排序序列的起始位置

3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置

重复步骤3直到某一指针到达序列尾

将另一序列剩下的所有元素直接复制到合并序列尾

递归法

假设序列共有n个元素:

将序列每相邻两个数字进行归并操作,形成{\displaystylefloor(n/2)}floor(n/2)个序列,排序后每个序列包含两个元素

将上述序列再次归并,形成{\displaystylefloor(n/4)}floor(n/4)个序列,每个序列包含四个元素

重复步骤2,直到所有元素排序完毕

代码

#递归法

defmerge_sort(list):

#认为长度不大于1的数列是有序的

iflen(list)<=1:

returnlist

#二分列表

middle=len(list)//2

left=merge_sort(list[:middle])

right=merge_sort(list[middle:])

#最后一次合并

returnmerge(left,right)

#合并

defmerge(left,right):

l,r=0,0

result=[]

whilel

ifleft[l]

result.append(left[l])

l+=1

else:

result.append(right[r])

r+=1

reslut+=left[l:]

result+=right[r:]

returnresult

以上内容为大家介绍了python归并排序,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们

培训代码数字位置指针

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢