博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比较排序算法时间复杂度下界为nlogn的证明
阅读量:4591 次
发布时间:2019-06-09

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

比较排序算法的时间复杂度是O(nlogn)的证明:

排序算法的比较是两两进行的,所以可以抽象成一棵二叉树,相互比较的数分别是左右叶子结点,,比较的结果存储在父节点中,依此类推。那么算法的时间复杂度就是取决于树的深度。如果要对n个数字进行比较排序,则需要进行n!次,即该二叉树有n!片叶子。

一棵深度为d的二叉树拥有的叶子结点数最大为2d个,则具有n!片叶子的二叉树的深度为logn!。

logn!=logn+log(n-1)+log(n-1)+…+log(2)+log(1)≥logn+log(n-1)+log(n-2)+…+log(n/)

≥(n/2)log(n/2)≥(n/2)log(n/10)

≥(n/2)logn-(n/2)log10=(n/2)logn=O(nlogn)

所以比较排序的算法时间复杂度为O(nlogn)

转载于:https://www.cnblogs.com/auto1945837845/p/5425760.html

你可能感兴趣的文章
架构之美01
查看>>
Web负载均衡
查看>>
SQL Server用表组织数据
查看>>
连接H3C交换机的Console口连不上
查看>>
test
查看>>
事件捕获与冒泡的再探
查看>>
easyUI文本框获得焦点,失去焦点
查看>>
Mariadb安装
查看>>
Java的native方法
查看>>
php_l3arning_notes_0
查看>>
在GROUP BY中"做文章"(五种中简答方法!)
查看>>
基础html页面结构
查看>>
新征程~起航!
查看>>
STL priority实例
查看>>
koa2-2
查看>>
GCD倒计时
查看>>
python基础总结(4)
查看>>
学习进度条-第十二周
查看>>
2>&1和&>的区别
查看>>
java中ArrayList、LinkedList、Vector的区别
查看>>