asymptotic-complexity相关内容

大O表示最坏情况下的运行时间,而Ω则表示最佳情况,但是为什么有时在最坏情况下使用Ω?

我很困惑,我认为您使用Big O表示最坏的运行时间,而Ω表示最佳情况?有人可以解释一下吗? (lg n)不是最好的情况吗? (nlg n)是最坏的情况吗?还是我误会了什么? 证明在大小为 n的堆上,Max-Heapify的最坏运行时间是Ω(lg n)。 (提示:对于具有n个节点的堆,请提供 导致从根到叶的路径 上的每个节点上递归调用Max-Heapify的节点值。) 编辑: ..

以下代码的时间复杂度如何为O(n)?

我正在解决有关采访位的时间复杂性问题,该问题在下面的图片中给出。 此问题的正确答案是O(N)。但据我说,答案应该是O(NlogN)。由于第一个“ for循环”的复杂度应为O(logN),因为变量i在每次迭代中均被2除,并且我研究了每当循环变量乘以或除以2时,时间复杂度为O (logN)。现在,对于第二个“ for循环”,复杂度应为O(N),因此最终复杂度应为O(N * logN)。 任 ..

递归的复杂度:T(n)= T(n-1)+ T(n-2)+ C

我想了解如何得出以下递归关系的复杂性。 T(n)= T(n-1 )+ T(n-2)+ C 给定 T(1)= C 和 T( 2)= 2C; 通常用于 T(n)= 2T(n / 2)+ C (给出T(1)= C),我使用以下方法。 T(n )= 2T(n / 2)+ C => T(n)= 4T(n / 4)+ 3C => T(n)= 8T(n / 8)+ 7C => ..

并行算法分析中的“工作",“跨度"和“时间"有什么区别?

在分析并行算法时,我们倾向于关注Work(T1),Span(T∞)或时间. 让我感到困惑的是,如果给我一种分析算法,那么我需要寻找哪些关键提示(工作,跨度和时间)? 假设此算法: 如何分析上述算法以找到工作,时间和跨度? 解决方案 来源: PRAM 于上世纪70年代初被引入,希望它可以在解决计算难题方面取得领先的性能.但是,这些计算设备体系结构仍然必须承受的主要限制使承 ..

O(n)是否大于O(2 ^ log n)

我读了一本数据结构书的复杂性层次结构图,其中n大于2 log n .但是不知道如何以及为什么.在使用2的幂作为n的简单示例时,我得到的值等于n. 书中没有提到它,但我假设它以2为基础(因为上下文是DS的复杂性) a)是O(n) > O(pow(2,logn))吗? b)O(pow(2,log n))比O(n)好吗? 解决方案 注意2 log b n = 2 log 2 n ..

求解递归T(n)= T(n/2)+ T(n/4)+ T(n/8)?

我正在尝试解决重复T(n) = T(n/8) + T(n/2) + T(n/4). 我认为先尝试一种递归树方法,然后将其用作替代方法的猜测是一个好主意. 对于这棵树,由于没有叶子的任何工作都没有完成,所以我认为我们可以忽略它,所以我试图在叶子的数量上设定一个上限,因为这是唯一相关的事情在这里. 我考虑了走过T(n/2)的路径最长的树的高度,这产生了log2(n)的高度.然后,我假 ..

哪对函数满足f(N)〜g(N)?

我刚刚开始使用算法,并且正在执行类似此问题的某些任务: 我认为正确的答案是A.由于功能相同,还是我错过了一些事情? 问题: 解决方案 答案是A.请注意,在这种情况下, f(N)= N + 2N + 3N = 6N = g(N) 所以f(N)〜g(N). 对于B中给出的功能,请注意 f(N)=(N +1)+(N + 2)+(N + 3)= 3N + 6 ..
发布时间:2020-05-06 10:56:45 其他开发

渐近最优算法,计算一条线是否与凸多边形相交

一种用于检测直线是​​否与凸多边形相交的O(n)算法在于检查多边形的任意边是否与直线相交,并检查相交的数量是否为奇数或偶数. 是否有一种渐近更快的算法,例如O(log n)一个? 解决方案 lhf的答案接近正确.这是应该解决他问题的版本. 让多边形具有逆时针顺序的顶点v0,v1,...,vn.让点x0和x1在直线上. 注意两件事:首先,可以在恒定时间内完成两条线的交点(并 ..

HashMap与ArrayList插入性能混淆

根据我的理解,hashmap插入是O(1),对于一个arraylist插入是O(n),因为对于hashmap,hash函数计算散列码和索引并插入条目,每次数组列表进行一次比较进入一个新的元素。 解决方案 首先,复杂度O(1)的操作并不总是比操作复杂度O(n)。 O(1)仅意味着操作需要一个固定的时间(可以是任何值),而不管输入的大小如何。 O(n)表示操作所需的时间随输入大小线性增加。这意 ..

图形从邻接表中的入度计算

我遇到了这个问题,它需要根据邻接列表表示计算图的每个节点的入度。 (i,u)∈E in-degree [u] + = 1 $ b $,对于每个Adj [i]其中i!= u 每个u b 现在根据它的时间复杂度应该是 O(| V || E | + | V | ^ 2),但我提到的解决方案却将它描述为等于 O(| V || E |)。 p> 请帮助并告诉我哪一个是 ..
发布时间:2018-05-25 17:25:42 其他开发

如何在最小最大堆上执行一般的删除操作?

注意:这个问题是由于我在网络上没有找到一个(正确的)解决方案,“如何从最小 - 最大堆中删除任何节点“。我作为答案提出的解决方案或不是正确的,因为我没有提供任何证明其正确性,只是解释。因此,这个问题的目的是为了强调算法和数据结构领域的专家来评论该解决方案,最终如果错误,提供一个具体且正确一个。我正在为整个社区做这个,而不仅仅是为了自己。 如何在最小最大堆上执行一般的删除操作? p> 最 ..

.NET集合类的渐近复杂性

有关于.NET集合类的渐近复杂性(big-O和其他方法)的任何资源( Dictionary , List 等...)? 我知道C5库的文档包括一些信息href =“http://www.itu.dk/research/c5/Release1.1/c5doc/types/C5.LinkedList_1.htm”rel =“nofollow noreferrer”> exam ..
发布时间:2016-12-15 18:01:41 C#/.NET

大O的clojure库函数

任何人都可以指向一个列出了基本clojure库函数(如conj,cons等)的Big-O复杂性的资源?我知道Big-O将根据输入的类型而有所不同,但仍然是这样的资源可用吗? 解决方案 这里是一个由 John Jacobsen 并采取了来自此次讨论: ..
发布时间:2016-11-27 20:16:50 其他开发语言

杂耍算法

方法(一杂耍算法) 划分阵列中不同集合,其中集合数量是等于n和d GCD并移动内套的元素。 如果GCD为1的是上面的例子阵列(N = 7,D = 2),那么元素将在一个只设置感动,我们刚开始TEMP = ARR [0],并继续前进ARR [I + D]给Arr [我],并最终存储温度在正确的地方。 下面是一个例子N = 12和D = 3 GCD是3和 让改编[]是{1,2,3,4,5,6,7, ..
发布时间:2015-11-30 22:41:43 C/C++

添加日志中渐近分析

有一个问题,我想工作,通过和将非常AP preciate一些帮助!什么是... ...的时间复杂度 的for(int j = 1至N){ K = D]; 而(K n种){ 总和+ =一个[k]的* B [k]的; K + =日志N; } } 外循环运行n次。我不知道该如何处理 K + =在内部循环日志ñ。我的想法是,这是为O(n ^ ..
发布时间:2015-11-30 22:37:25 C/C++

分析指数递归函数

我想计算下的复杂性 指数递归函数。 在isMember()和isNotComputed()函数数量减少 递归调用。 这code的输出是一组A的[],B []这是印在 递归函数调用的初始部分。 将为AP preciate开发这个递归关系的任何输入 问题,这将导致该方案的分析。 如果没有功能isMember(),isNotComputed()这个code具有复杂性为O(2 ^ N)。根据经验( ..