python实现归并排序及其优化(相对有序待排数,自顶向下递归实现以及自下向上循环实现)

本文介绍了Python中归并排序的实现,包括自上而下的递归方法和自下而上的循环实现。同时探讨了针对相对有序数据和小序列的优化策略,如在有交集时进行归并和使用插入排序,以提升算法性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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时可以用插入排序
   虽然不能改变时间复杂度的量级,但是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值