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

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

排序算法很多,常见的归并排序,快速排序,在时间效率上,最坏情况下至少需要O(nlgn)的时间,这是为什么呢?已知n个数有n!种排列,而我们需要的只有一种排列,这就好比在n个数里猜一个数k,你需要多久才能找到,玩过相关游戏的小伙伴肯定有经验,先用中间的数去试,这样范围就缩小一半,再接着一半一半地缩小,所以经过log(n)次就一定能找到k。

这其实是二叉树叶节点为n的树的高度。那么同样地,要从n!里找到一种排列,需要猜log(n!)次,而根据斯特林公式,n!等效于O(nˆn),那么log(n!)等价于O(nlog(n))。这通常是比较排序算法最坏情况下的性能边界。

还有就是计数排序,通常考虑数据分布情况,在性能上能达到线性级

转载于:https://www.cnblogs.com/who-a/p/5678288.html

你可能感兴趣的文章
[PYTHON]一个简单的单元測试框架
查看>>
iOS开发网络篇—XML数据的解析
查看>>
[BZOJ4303]数列
查看>>
一般处理程序在VS2012中打开问题
查看>>
C语言中的++和--
查看>>
thinkphp3.2.3入口文件详解
查看>>
POJ 1141 Brackets Sequence
查看>>
Ubuntu 18.04 root 使用ssh密钥远程登陆
查看>>
Servlet和JSP的异同。
查看>>
虚拟机centOs Linux与Windows之间的文件传输
查看>>
ethereum(以太坊)(二)--合约中属性和行为的访问权限
查看>>
IOS内存管理
查看>>
middle
查看>>
[Bzoj1009][HNOI2008]GT考试(动态规划)
查看>>
Blob(二进制)、byte[]、long、date之间的类型转换
查看>>
OO第一次总结博客
查看>>
day7
查看>>
iphone移动端踩坑
查看>>
vs无法加载项目
查看>>
Beanutils基本用法
查看>>