Python版归并排序算法(附Python程序__name__属性用法演示视频)

import random

def mergeSort(seq, reverse=False):

#把原列表分成两部分

mid = len(seq) // 2

left, right = seq[:mid], seq[mid:]

#根据需要进行递归

if len(left) > 1:

left = mergeSort(left)

if len(right) > 1:

right = mergeSort(right)

#现在前后两部分都已排序

#进行合并

temp = []

while left and right:

if left[-1] >= right[-1]:

temp.append(left.pop())

else:

temp.append(right.pop())

temp.reverse()

result = (left or right) + temp

#根据需要进行逆序

if reverse:

result.reverse()

return result

#测试

for i in range(100000):

#生成随机测试数据

reverse = random.choice((True, False))

x = [random.randint(1,100) for i in range(20)]

y = sorted(x, reverse=reverse)

x = mergeSort(x, reverse)

if x!=y:

print('error')

附:Python程序的__name__属性作用与用法演示视频

视频内容

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2016-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

【推荐】C#线程篇---Task(任务)和线程池不得不说的秘密(5.1)

在上篇最后一个例子之后,我们发现了怎么去使用线程池,调用ThreadPool的QueueUserWorkItem方法来发起一次异步的、计算限制的操作,例子很简单...

4545
来自专栏xingoo, 一个梦想做发明家的程序员

圆排列问题-回溯法

问题描述:     给定n个大小不等的圆 c1 c2 c3 c4 要将n个圆排进一个矩形框中,且要求底边相切。找出有最小长度的圆排列。     例如:当n=3,...

2569
来自专栏草根专栏

设计模式学习(四): 1.简单工厂 (附C#实现)

New ? ? 这是一个典型的情况, 我们需要在运行时来实例化一些具体的类. 在需要修改或者扩展的时候我们就需要改这段代码. 一个程序中可能会多次出现类似的代码...

3046
来自专栏大内老A

EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG

在《EnterLib PIAB又一个BUG?》这篇文章中我们谈到:当我们通过应用DependencyAttribute特性定义需要自动注入的属性的时候,当这个属...

23710
来自专栏大内老A

通过扩展改善ASP.NET MVC的验证机制[实现篇]

在《使用篇》中我们谈到扩展的验证编程方式,并且演示了本解决方案的三大特性:消息提供机制的分离、多语言的支持和多验证规则的支持,我们现在来看看这样的验证解决方案最...

21210
来自专栏章鱼的慢慢技术路

Go指南练习_错误

1313
来自专栏AILearning

TensorFlow风格指南

此页面包含TensorFlow的开发人员和用户应遵循的风格决策,以增加其代码的可读性,减少错误数量并提高一致性。 Python风格 一般遵循 PEP8 P...

22510
来自专栏mathor

LeetCode410. 分割数组的最大值

 这道题看着好像没什么思路,但其实可以利用二分法来做,二分法中的mid就是最终要返回的值,也就代表着子数组的和最小的值  我们首先还是设置左右区间,左区...

1353
来自专栏程序员的SOD蜜

实体类的二进制序列化

在.NET中,我们可以将对象序列化从而保存对象的状态到内存或者磁盘文件中,或者分布式应用程序中用于系统通信,一般来说,二进制序列化的效率要高,所获得的字节数最小...

2349
来自专栏草根专栏

C# 7.0简而言之 -- 01. C#和.NET Framework简介

C#里面所有的类型都有一个共享的基类, 这也意味之C#里面所有的类型都具备一些相同的基本功能, 例如任何类型都可以通过调用ToString()方法来转化成字符串...

4989

扫码关注云+社区

领取腾讯云代金券