博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11.排序算法_6_归并排序
阅读量:5803 次
发布时间:2019-06-18

本文共 598 字,大约阅读时间需要 1 分钟。

  hot3.png

时间复杂度是程序运行的时间,也可以说是次数;

空间复杂度是程序占用的空间;

6.归并排序

时间复杂度的计算:

二分查找/快排/归并,有一个共同的特点,就是将数据分为2堆。
2t = n => t = log2(n)
快排和归并每一次都要比较n次,所以时间复杂度= n*log2(n)
归并比较:只需要接着前一个数字比较就行,每一层总共比较n次。
快排比较:每一层总共和n个数字进行比较。

# coding: utf-8def MergeSort(lists):    if len(lists) <= 1:        return lists    num = int( len(lists)/2 )    # 从中间,进行数据的拆分, 递归的返回数据进行迭代排序    left = MergeSort(lists[:num])    right = MergeSort(lists[num:])    print left    print "*"*20    print right    print "_"*20    return Merge(left, right)def Merge(left,right):    r, l=0, 0    result=[]    while l

转载于:https://my.oschina.net/repine/blog/695011

你可能感兴趣的文章
stat
查看>>
报空指针异常
查看>>
如何配置mysql的超时时间
查看>>
centos 6.5环境下分布式文件系统MogileFS工作原理及分布式部署实现过程
查看>>
Windows2008 r2 x64下安装FTP工具File Zilla server报错:could not load tls libraries filezilla
查看>>
Java_spark简单例子
查看>>
imshow(K)和imshow(K,[]) 的区别
查看>>
poj3190 Stall Reservations
查看>>
CORS 跨域问题, 以及作为api server 的正确配置, 后台 nginx 配置
查看>>
loadrunner录制脚本、回放脚本遇到的问题
查看>>
16进制数至字符串转换
查看>>
Java Web整合开发(13) -- XML
查看>>
标准库Queue的实现
查看>>
如何使用Python3.4连接MySQL
查看>>
automake,autoconf使用详解
查看>>
高并发
查看>>
(转载)Attempting to add QLayout "" to MainWindow "", which already has a layout
查看>>
CentOS 6.5 Rsync+Inotify实时同步
查看>>
DevCloud会员权益升级!日常领码豆,轻松换好礼!
查看>>
POJ 1129
查看>>