原文:猴子排序的期望复杂度推导(雾)

众所周知,猴子排序打破了排序算法 O n log n 的桎梏 雾 ,具体的话,显然最好情况一次成功就是 O n ,最坏情况那就 O infty 了。期望是多少呢 让我来推导一番 逃 。 首先,设序列长度为 n ,每次打乱序列和检测是否有序为 O n ,每次成功的概率为 frac n 全排列共 n 种 ,失败的概率为 frac n 。我们令 X 为排序成功所需的打乱次数,则 P X k P 成功 ...

2017-09-24 23:09 5 2082 推荐指数:

查看详情

快速排序期望复杂度O(nlogn)证明。

快速排序的最优时间复杂度是 \(O(nlogn)\),最差时间复杂度是 \(O(n^2)\),期望时间复杂度是 \(O(nlogn)\)。 这里我们证明一下快排的期望时间复杂度。 设 \(T(n)\) 为对长度为 \(n\) 的序列进行快速排序所需要的期望时间。我们有: $$T ...

Fri Aug 31 22:55:00 CST 2018 0 2806
快速排序的时间复杂度nlogn是如何推导的??

本文以快速排序为例,推导了快排的时间复杂度nlogn是如何得来的,其它算法与其类似。 对数据Data = { x1, x2... xn }: T(n)是QuickSort(n)消耗的时间; P(n)是Partition(n)消耗的时间; (注:Partition专指把n个数据分为大小2份 ...

Wed Jul 17 03:03:00 CST 2013 0 4719
归并排序时间复杂度推导

众所周知,归并排序的时间复杂度是O(N*lgN) 归并排序的时间复杂度推导书上网上一抓一把,但是多数证明都是基于N=2k这个假设来证明的,下面我给出一般情况的证明。 先上归并排序代码: 根据代码可以看出,时间消耗主要在我标红的3个地方,可以得出: 我们知道每一个整数都可以 ...

Thu Mar 23 00:36:00 CST 2017 0 11954
快速排序的时间复杂度期望比较次数

众所周知,快速排序的时间复杂度为\(O(n\text{lg}n)\)。虽然对此很容易直观理解,但由于算法的随机特性,这一时间复杂度的严格证明并非显然的。我将在这里说明如何计算快速排序运行过程中的比较次数的期望,以此得到对时间复杂度的较为严谨的证明。 定义\(E(n)\)为对长度为\(n ...

Sun Mar 14 07:41:00 CST 2021 0 632
快速排序,冒泡排序时间复杂度推导

快速排序时间复杂度分析:数组长度为n1,平均复杂度:t(n) = cn + 2t(n/2)= cn + 2(cn/2 + 2t(n/4)) = 2cn + 4t(n/4)= 2cn + 4(cn/4 + 2t(n/8)) = 3cn + 8t(n/8)= icn + 2^i * t(n/(2^i ...

Fri Aug 17 19:16:00 CST 2018 0 2528
排序复杂度分析

排序的时间复杂度分析 插入排序——直接插入排序 在最好的情况下,序列已经是有序的,每次插入元素最多只需要与有序表中最后一个元素进行比较,时间复杂度为O(n)。在最坏的情况下,每次插入元素需要与前面所有的元素进行比较,时间复杂度为O(n2),平均时间复杂度为O(n2)。 代码 ...

Fri Oct 26 01:58:00 CST 2018 0 718
各种排序和查找复杂度

排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O ...

Mon Mar 14 22:41:00 CST 2016 0 2699
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM