归并排序(python实现)

摘要:
“”“合并排序典型的划分和征服递归实现了划分和征服的效果”“defmerge_sort(list):iflen(list)˂=1:return list#划分和征服排序mid=len(alist)//2left=Merge_sort(list[:mid])right=Merge_sort
"""
归并排序
典型的分而治之
递归实现分治的效果
"""


def merge_sort(alist):
    if len(alist) <= 1:
        return alist
    # 分治排序
    mid = len(alist)//2
    left = merge_sort(alist[:mid])
    right = merge_sort(alist[mid:])
    # 合并
    return merge(left, right)

def merge(left, right):
    """合并操作,将两个有序数组left[]和right[]合并成一个大的有序数组"""
    # left 与 right 的下标指针
    l, r = 0, 0
    result = []
    while l < len(left) and r < len(right):
        if left[l] < right[r]:
            result.append(left[l])
            l += 1
        else:
            result.append(right[r])
            r += 1
    result += left[l:]
    result += right[r:]
    return result

免责声明:文章转载自《归并排序(python实现)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CountDownLatch实例的await()方法Linux编程 | 使用 make下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别和基本使用

1、解析速度:ElementTree在 Python 标准库中有两种实现。一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.cElementTree 。你要记住: 尽量使用 C 语言实现的那种,因为它速度更快,而且消耗的内存更少。 2、调试区别 使用cElementTree的话,在p...

python版的读取声音文件到常量数组

    通常我们播放声音文件的时候会通过脚本读取所有的声音文件,然后放到数组里面,然后生成int型的索引,这样播放的时候就不直接传声音名字了, 而是这样playMusic( MUICS_BG_1 }, playSound( SE_DOG ); 这样无论声音格式如何变化,代码都无需改变。 之前都是Perl写的,这次为了和其他人保持一致改成python版的了,...

python使用zipfile解压文件中文乱码问题

中文在编程中真实后娘养的,各种坑爹,python3下中文乱码这个问题抓破了头皮,头疼。看了alex的文章,才有种恍然大悟的感觉(链接在底部)。 一句话,就是转换成unicode,压缩前是什么编码,使用什么编码encode再decode回来 先看测试代码: #-*- coding: utf-8 -*- import zipfile # 默认模式r,读 az...

高斯分布(Gaussian Distribution)的概率密度函数(probability density function)

高斯分布(Gaussian Distribution)的概率密度函数(probability density function) 对应于numpy中: numpy.random.normal(loc=0.0, scale=1.0, size=None) 参数的意义为: loc:float 此概率分布的均值(对应着整个分布的中心centre) scale...

Python脚本导出AWS EC2资源清单

环境需求 单位现在每隔一段时间需要核对一下 AWS 正在运行的 EC2 资源清单,为了避免核对失误以及重复性的工作,打算用脚本来解决这一重复性的工作。大概思路为 通过 AWS AK、SK 来索取 AWS EC2 list 的权限,然后通过 Python 把正在运行的 EC2 实例筛选出来,然后提取出来想要的一些内容 写入到 CSV 表格中,通过附件的方...

python 基础 5.1 python 构造器

一. 类的构造器 __init__ 构造函数,在生成对象时调用。由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把 name score 等属性上去。默认的属性可以写在__init__ 下面。 #/usr/bin/python #coding=ut...