当前位置: 首页 > 图灵资讯 > 行业资讯> python归并排序的基本思路

python归并排序的基本思路

来源:图灵python
时间: 2024-07-16 10:16:29

基本思路

归纳排序是采用分治法的典型应用。

1、先归还分解组,再合并组。基本构思是将数组分解到最小,然后合并两个有序数组。

2、基本概念是比较两个数组的前面数量,谁小先取谁,取相应的指针后移。

然后进行比较,直到一组是空的,最后复制另一组的剩余部分。

实例

#归并排序
defmerge_sort(alist):
'''合并排序'''
n=len(alist)
ifn<=1:
returnalist
else:
mid=n//2
#left是一个有序的新列表,由合并排序形成
left_li=merge_sort(alist[:mid])

#right是一个有序的新列表,由合并排序形成
right_li=merge_sort(alist[mid:])

#将两个有序的子序列合并成一个新的整体
#merge(left,right)
left_pointer,right_pointer=0,0
result=[]
whileleft_pointer<len(left_li)andright_pointer<len(right_li):
ifleft_li[left_pointer]<=right_li[right_pointer]:
result.append(left_li[left_pointer])
left_pointer+=1
else:
result.append(right_li[right_pointer])
right_pointer+=1

result+=left_li[left_pointer:]
result+=right_li[right_pointer:]
returnresult

if__name__='__main__':
alist=[54,26、93、17、77、31、44、55、20]
print(alist)
sorted_alist=merge_sort(alist)
print(sorted_alist)

以上是python合并排序的基本思路,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。