python实现归并排序及其优化
1、归并排序思想:
mergeSort: 分完再排,自上向底。先把待排数分为两个小部分直至不能再分,再归并(排序)。
mergeSortBU:边分边排,自底向上,设置size
merge:
将传入的left_arr,right_arr按从小到大的顺序,合并为一个列表result,
并返回result
2、可以通过优化,提升性能
(1)只有当小序列最大的大于大序列最小(有交集)时,才进行归并
(2)当元素非常少时,merge时可以用插入排序
以上操作虽然不能改变时间复杂度的量级,但是可以减小时间
(3)自底向上排序,不递归,仅迭代:mergeSortBU(arr)
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 26 10:12:06 2019
@author: echo
"""
'''
1、归并排序先分再归并
2、可以通过优化,提升性能
(1)只有当小序列最大的大于大序列最小(有交集)时,才进行归并
(2)当元素非常少时,merge时可以用插入排序
虽然不能改变时间复杂度的量级,但是