Questions tagged «algorithm-analysis»

有关确定算法属性的科学和技术的问题,通常包括正确性,运行时和空间使用情况。使用[runtime-analysis]标记可查询有关算法运行时间的问题。

2
二维峰发现复杂度(MIT OCW 6.006)
在43:30的MIT OCW 6.006的朗诵视频中, 给定一个具有列和行的矩阵,二维峰查找算法(其中一个峰是大于或等于其相邻邻居的任何值)被描述为:m×n米×ñm \times nA一个Am米mnñn 注意:如果在通过来描述列时出现混淆,我表示歉意,但这是背诵视频描述它的方式,我尝试与该视频保持一致。这让我非常困惑。nñn 选择中间的列 // 具有复杂性n/2ñ/2n/2Θ(1)Θ(1个)\Theta(1) 求列的最大值// 具有复杂度, 因为一列中有行Θ (米)米n/2ñ/2n/2Θ(m)Θ(米)\Theta(m)m米m 检查水平。最大值的行邻居,如果大于,则找到一个峰值,否则以递归// 具有复杂度T (n / 2 ,m )T(n/2,m)Ť(ñ/2,米)T(n/2, m)T(n/2,m)Ť(ñ/2,米)T(n/2,m) 然后要评估递归,背诵教练说 T(1,m)=Θ(m)Ť(1个,米)=Θ(米)T(1,m) = \Theta(m)因为它找到最大值 Ť(n ,m )= Θ (1 )+ Θ (m )+ T(n / 2 ,m )(E1)(E1)Ť(ñ,米)=Θ(1个)+Θ(米)+Ť(ñ/2,米) T(n,m) = \Theta(1) + \Theta(m) + T(n/2, m) \tag{E1} 我了解下一部分,在视频中的52:09,他说要把当作常量,因为行数永不改变。但我不知道这如何导致以下产品:米米m …

3
大O:嵌套循环依赖
我收到了Big O的作业分配。我受嵌套的for循环的困扰,该循环取决于先前的循环。这是我的作业问题的修改版本,因为我确实很想理解它: sum = 0; for (i = 0; i < n; i++ for (j = 0; j < i; j++) sum++; 让我失望的j < i部分是那部分。似乎它几乎像阶乘一样执行,但是要加上。任何提示将不胜感激。

3
如果选择最大元素作为枢轴,Quicksort是否始终具有二次运行时间?
如果您有快速排序算法,并且始终选择最小(或最大)元素作为枢轴;我是否假设如果您提供一个已经排序的数据集,无论您的“已排序”列表是按升序还是降序,都将始终获得最差的性能? 我的想法是,如果您始终为枢轴选择最小的元素,那么“已排序”输入是按升序还是降序排序并不重要,因为选择相对于枢轴进行排序的子集始终是一样大小?

1
为什么取消负周期的复杂度?
我们想用通用的负周期抵消算法来解决最小成本流问题。也就是说,我们从随机有效流开始,然后我们不选择任何“良好”负周期,例如最小平均成本周期,而是使用Bellman-Ford发现最小周期并沿发现的周期增加。设为图中节点的数量,为边的数量,为图中边缘的最大容量,为图中边缘的最大成本。然后,我的学习资料声称:VVVAAAUUUWWW 开始时的最高费用不得超过AUWAUWAUW 沿一个负周期的增加将成本降低至少一个单位 最低费用的下限是0,因为我们不允许负费用 每个负周期都可以在O(VA)O(VA)O(VA) 并且他们从中得出算法的复杂度为。我理解每个声明背后的逻辑,但认为复杂性不同。具体来说,最大扩充数量由每个扩充的一个流量单位给出,将的成本降至零,从而为我们提供了最大的扩充。我们需要为每个发现一个负循环,因此我们将最大扩增次数乘以发现一个循环所需的时间(),并得出算法的。O(V2AUW)O(V2AUW)O(V^2AUW)AUWAUWAUWAUWAUWAUWVAVAVAO(A2VUW)O(A2VUW)O(A^2VUW) 这可能是学习资料中的错误(这是教授提供的文字,而不是课程中的学生笔记),还是我的逻辑错误?

3
对数与双对数时间复杂度
在实际应用中,使用而不是O(log (n ))算法有具体的好处吗?O(对数(日志(n ))O(log⁡(log⁡(n))\mathcal{O}(\log(\log(n))O(对数(n ))O(log⁡(n))\mathcal{O}(\log(n)) 当使用例如van Emde Boas树而不是更常规的二进制搜索树实现时就是这种情况。但是例如,如果我们取那么在最佳情况下,双对数算法的对数性能比对数算法高(大约为5)。而且一般来说,实现起来更加棘手和复杂。n &lt; 106n&lt;106n < 10^6555 考虑到我个人比VEB树更喜欢BST,您怎么看? 一个人可以很容易地证明: ∀ Ñ &lt; 106。日志 ñ日志(日志(n ))&lt; 5.26146∀n&lt;106. log⁡nlog⁡(log⁡(n))&lt;5.26146\qquad \displaystyle \forall n < 10^6.\ \frac{\log n}{\log(\log(n))} < 5.26146

1
通过虚部特征多项式求解递归
在算法分析中,您通常必须解决重复问题。除了主定理,替换和迭代方法外,还有一种使用特征多项式的方法。 说我的结论是一个特征多项式有虚根,即X 1 = 1 + 我和X 2 = 1 - 我。那我就不能用x2−2x+2x2−2x+2x^2 - 2x + 2X1个= 1 + 我x1=1+ix_1 = 1+iX2= 1 - 我x2=1−ix_2 =1-i C1个⋅ Xñ1个+ c2⋅ Xñ2c1⋅x1n+c2⋅x2n\qquad c_1\cdot x_1^n + c_2\cdot x_2^n 获得解决方案,对吗?在这种情况下我应该如何进行?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.