Python排序搜索基本算法之归并排序实例分析
作者:littlethunder 时间:2023-10-19 04:15:11
本文实例讲述了Python排序搜索基本算法之归并排序。分享给大家供大家参考,具体如下:
归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序列排序所用时间与NlogN成正比。代码如下:
# coding:utf-8
def mergesort(seq):
if len(seq)<=1:
return seq
mid=int(len(seq)/2)
left=mergesort(seq[:mid])
right=mergesort(seq[mid:])
return merge(left,right)
def merge(left,right):
result=[]
i,j=0,0
while i<len(left) and j<len(right):
if left[i]<=right[j]:
result.append(left[i])
i+=1
else:
result.append(right[j])
j+=1
result+=left[i:]
result+=right[j:]
return result
if __name__=='__main__':
print("脚本之家测试结果:")
seq=[4,5,7,9,7,5,1,0,7,-2,3,-99,6]
print(mergesort(seq))
运行结果:
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/littlethunder/article/details/9472301
标签:Python,算法,归并排序
0
投稿
猜你喜欢
python网络编程之数据传输UDP实例分析
2022-12-07 12:42:41
Explain命令在优化查询中的实际应用
2024-01-20 03:54:13
学习ASP.NET八天入门:第一天
2007-08-07 13:08:00
基于PyQt5制作Excel文件数据去重小工具
2023-10-14 05:44:58
Python实现向好友发送微信消息
2021-11-11 18:33:02
Python中threading库实现线程锁与释放锁
2021-11-13 10:26:49
如何用Idea或者webstorm跑一个Vue项目(步骤详解)
2022-08-20 17:06:23
oracle使用instr或like方法判断是否包含字符串
2024-01-15 14:59:44
vue中v-model指令与.sync修饰符的区别详解
2024-05-28 15:46:10
探析Windows下将gvim8配置为Python IDE的方法
2021-02-02 06:28:30
浅谈对python中if、elif、else的误解
2021-04-04 00:57:57
python抓取京东小米8手机配置信息
2021-10-12 15:55:32
Oracle 启动例程 STARTUP参数说明
2009-07-07 10:26:00
Python制作简易注册登录系统
2022-08-25 14:46:28
柳永法:vbs或asp采集文章时网页编码问题
2009-02-04 10:50:00
mysql数据库 主从复制的配置方法
2024-01-16 09:24:35
深入理解Sql Server中的表扫描
2024-01-27 09:05:33
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2023-08-09 20:32:30
Pandas中DataFrame的常用用法分享
2022-08-10 01:17:49
MySQL8.0+版本1045错误的问题及解决办法
2024-01-16 23:19:33