当前位置:首页 » 编程语言 » java复杂度

java复杂度

发布时间: 2024-04-03 06:54:14

A. 快速排序的算法复杂度分析

原文地址:
快速排序的算法复杂度分析
以下是快排的java算法:

大家都知道快排的时间复杂度是O(n*ln[n]),那么这个复杂度是如何计算出来的呢?

最好的情况下,每次划分对一个记录定位后,要记录的左侧子序列与右侧子序列的长度相同。在具有n个记录的序列中,一次划分需要对整个待划分序列扫描一遍,所需的时间为O(n)。

设 是对n个记录的序列进行排序的时间,每次划分后,正好把划分区域分为长度相等的连个子序列,显然T(0)=T(1) =1,则有:

最坏的情况下,待排序的记录序列正序或逆序,每次划分只能得到一个比上一次划分少一个记录的子序列,(另一个子序列为空)。此时,必须经过n-1次递归调用才能把所有记录定位,而且第i趟划分需要经过n-i次比较才能找个才能找到第i个记录的位置,因此时间复杂度为

平均情况下,设轴值记录的关键码第k小(1≤k≤n),则有:

由上式可推出如下两式:

两式相减,然后两边同除以n(n+1)得

又因为f(n)单调递减,单调有界数列极限定理,所以f(n)有界

此数称为欧拉常数,

约为 0.57721566490153286060651209

所以

所以

**如果有何处不当,请不吝赐教,一定多加完善。谢谢 **

参考资料:

【1】《算法设计与分析》第二版 王红梅

热点内容
光纤破解上传速度 发布:2025-04-04 08:32:26 浏览:829
标准量算法 发布:2025-04-04 08:31:42 浏览:366
安卓手机英文中文在哪里设置 发布:2025-04-04 08:30:54 浏览:485
cmdftp下载 发布:2025-04-04 08:21:33 浏览:53
为什么服务器可以用家用内存 发布:2025-04-04 08:16:25 浏览:978
硬件压缩 发布:2025-04-04 08:16:19 浏览:141
vps搭建邮箱服务器 发布:2025-04-04 08:14:07 浏览:873
pythoneclipse运行 发布:2025-04-04 08:13:59 浏览:711
以前新算法 发布:2025-04-04 08:13:21 浏览:10
小蝌蚪上传 发布:2025-04-04 08:05:43 浏览:569