complexity-theory

桶排序:为什么我们不将范围设置为 1?与计数排序

桶排序创建 k 个桶......并在其中一个桶中分配 n 个数字...... 例如1-10, 11-20, 21-30... O(n+k) 桶内的编号使用插入 O(n²) 排序 当少数数字最终在同一个桶中时,它可以正常工作.. O(n+k) 但是如果所有数字都在同一个桶中...O(n²) 我的问题是我们是否将桶的范围设为 1 即 0-1 ,1-2, 2-3…… 不同的号码不会在同一个桶中结束... »

单链表的时间复杂度

我正在研究数据结构:单链表。 网站说单链表的插入和删除时间复杂度为O(1)。我错过了什么吗? website link 我在 C++ 中执行此操作,并且我只有一个 root pointer。如果我想在最后插入,那么我必须一直走到后面,这意味着O(n)。 ... »

c++

从 O(|E|) 中的图中删除一条边后如何更正 MST?

我正在研究算法,我看到一个练习说如下: 令 G=(V,E) 为加权无向图。令 T 为 G 的 MST。令 e 是 T 中的一条边,令 G'=(V,E') 是从 删除 e 后的 G(即 E'=E/{e} )。 G' 是一个连通图。描述 一种校正 T 的算法,这样我们将得到 G' 的 MST T' O(|E|)。 A 我知道,去掉边后,T 现在被分成两个连通分量 T1 和 ... »

如何计算回溯算法的时间复杂度

用过这个程序,如何计算回溯算法的时间复杂度? /* Function to print permutations of string This function takes three parameters: 1. String 2. Starting index of the string 3. Ending index of the string. */ void s... »

c

stl map的迭代器++复杂性[关闭]

stl RB-Tree(set or map)的iterator++操作的复杂度是多少? 我一直认为他们会使用索引,因此答案应该是 O(1),但最近我阅读了 vc10 实现并震惊地发现他们没有。 要在有序 RB-Tree 中找到下一个元素,需要花费时间搜索右子树中的最小元素,或者如果节点是左子节点且没有右子节点,则搜索右兄弟节点中的最小元素。这引入了一个递归过程,我相信 ++ 运算符需要 O(lg... »

c++

操作系统虚拟内存

我是第一次阅读操作系统课程的学生。我对使用需求分页时的性能下降计算有疑问。在 Silberschatz 关于操作系统的书中,出现了以下几行。 “如果我们采用 8 毫秒的平均页面错误服务时间和 内存访问时间为 200 纳秒,则有效访问时间为 纳秒是 有效访问时间 = (1 - p) x (200) + p (8 毫秒) = (1 - p) x 200 + p x 8.00(1000 ... »

渐近符号的使用

我对这个特定问题有疑问,答案说 big-Oh(n^2) 算法不会比 big-Oh(n^3) 算法运行得更快,而如果这两种情况下的符号都是 theta,那么本来是真的,但为什么会这样呢? 如果有人可以向我详细解释,我会很高兴,因为我找不到任何可以澄清我的疑问的来源。... »

正则表达式简化问题

我试图理解下面定义的正则表达式 α 和 β 之间的等价性,但我因信息冲突而失去理智。 a+b: a or b ab: concatenation of a and b $: empty string α = (1*+0)+(1*+0)(0+1)*($+0+1) β = (1*+0)(0+1)*($+0+1) https://ivanzuzak.info/noam/web... »

Union-Find 路径压缩效率

我在网上找到了一些union-find tutorial 描述的路径压缩技术,它比O(log(N)) 的复杂度甚至低于find(),下面是本博客中的路径压缩实现, int root (int Arr[], int i) { while(Arr[i] != i) { Arr[i] = Arr[ Arr[i] ]; i = Arr[i]; } ... »

如何找到算法的时间复杂度?

我已经搜索过Google 和Stack Overflow,但我无法找到关于如何计算时间复杂度的清晰直接的解释 我已经知道了什么? 说一个像下面这样简单的代码: char h = 'y'; // This will be executed 1 time int abc = 0; // This will be executed 1 time 说一个像下面这样的循环: for (int i = 0;... »

在二分图中划分完美匹配

在“婚姻问题”中,我们有 N 个男孩和 N 个女孩以及一个 NxN 二进制矩阵,告诉我们哪些配对是合适的,并且希望将每个女孩与一个男孩配对。 (即我们想在二分图中找到完美匹配)。 霍尔定理说,如果男孩节点的每个集合都与至少同样多的女孩节点共同相邻,则可以找到完美匹配;并且有快速的增广路径算法可以找到完美的这些匹配。 我正在寻找一种有效的方法来找到与 恰好 数量的女孩节点共同相邻的男孩节点集合(... »

有逆变单子吗?

函子可以是协变的和逆变的。这种协变/逆变对偶也可以应用于单子吗? 类似: class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m b class ContraMonad m where return :: a -> m a contrabin... »

满足关系的元素数

给定两个数组: 2 5 6 4 3 7 1 5 1 6 2 3 7 4 计算两个数组中满足x在y之前的条件的元素x, y。 目前的进展: 按索引对数组进行排序。例如,这将是: object: 1 2 3 4 5 6 7 indexes in the first array: 6 0 4 3 1 2 5 indexes in the secn... »

简单的圈复杂度计算

我找到了this site claiming thatCyclomatic Complexity = ( 2 + ifs + loops +cases - return ),我还发现循环复杂度可以通过条件语句的数量+1来计算,基本相同。 现在上面指出,对于 switch 中的每个案例,循环复杂度都增加了 +1,如果我在每个案例中都有一个 return 语句会发生什么? 例如下面代码的 CC ... »