big-o相关内容
在JavaScript中数组是很容易修改通过添加和删除项目。它有点掩盖一个事实,即大多数语言阵列是固定尺寸的,并且需要复杂的操作来调整。似乎的JavaScript可以很容易地编写业绩不佳的阵列code。这就引出了一个问题: 我可以从JavaScript实现期望的问候阵列的性能表现是什么(在大O时间复杂性方面)? 我认为所有合理的JavaScript实现至少有以下大O的。 访问 - O(1)
..
我一直在寻找一种先进的Levenshtein距离算法,并最好的,我已经发现迄今是O(N * M)其中n和m是两个字符串的长度。之所以算法是在这个规模,因为空间,而不是时间,与创建两个字符串像这样的矩阵: 是否有一个公开提供的Levenshtein算法比O(N * M)更好我不反对看先进的计算机科学论文和放大器?;研究,但一直没能找到任何东西。我已经找到一家公司,Exorbyte,据称已经建成
..
我对一个算法的测试这个问题,昨天,我不能找出答案。这是推动我绝对是疯了,因为它是价值约40点。我想,大多数类并没有解决它正确,因为我还没有想出了在过去24小时内解决。 鉴于长度为n的任意的二进制串,查找字符串在三个均匀间隔的,如果它们存在。写一个算法,解决了这个为O(N *的log(n))的时间。 所以像这些字符串有三种那些被“均匀间隔”:11100000,0100100100 编辑:这是随
..
我想用递归树来寻找斐波那契数列的复杂性,并得出结论树的高度= O(N)最坏的情况下,成本每个级别= CN ,所以的复杂性= N * N = N ^ 2 为什么是 O(2 ^ n)的? 解决方案 在一个天真的递归斐波纳契的复杂性确实2ⁿ。 T(N)= T(N-1)+ T(N-2)= T(N-2)+ T(N-3)+ T(N-3 )+ T(N-4)= = T(N-3)+ T(N-4)+ T(N
..
我看着到的C ++ 0x标准,发现make_heap应该做的不超过3 * N比较的要求。 即。 heapify的无序集合可以在O(N)来完成 / * @brief构造一个堆在使用比较函数对象的范围。 这是为什么? 该人士没有给我的线索(G ++ 4.4.3) 的,而(真)+ __parent == 0并不线索,而是代表O猜测(N)的行为 模板< typename的_
..
我写的排序为O(n)的一个简单的程序。这是非常低效的内存,但是这不是问题的关键。 它使用的原则后面的的HashMap 进行排序: 公共类NLogNBreak { 公共静态类LinkedListBack { 公共LinkedListBack(INT VAL){ 第一=新节点(); first.val = VAL;
..
堆排序有最坏情况复杂度为O(n日志)N wnile快速排序为O(n ^ 2)。 但emperical证据说,快速排序优越。这是为什么呢? 解决方案 其中一个主要因素是,快速排序具有更好的引用的局部性的 - 要访问的下一件事就是通常接近于内存到东西,你只是看着。与此相反,堆排序跳跃周围显著更多。既然事情是并拢可能会被缓存起来,快速排序往往会更快。 不过,快速排序的最坏情况下的的性能显著不如堆排
..
我看到在Reddit上这个问题,并没有正解presented,而且我认为这将是一个完美的问题要问在这里。这是在一个线程关于面试问题: 写方法,它的大小为m的int阵列,和返回(真/假)如果数组由号n ... N + M-1,在此范围内的所有数字和只有数字在该范围内。该阵列不保证进行排序。 (例如,{2,3,4}会返回true。{1,3,1}将返回false,{1,2,4}将返回false。
..
这是一个家庭作业的问题。我不期待一个答案,只是一些指导,可能:)我要表明的日志( N 的!)=Θ( N 的·日志( N 的)) 一个提示是因为我应该表现出的上限是的 N 的的 N 的 并显示下界是( N 的/ 2)( N 的/ 2) 。这似乎不是所有的直觉给我。为什么会出现这种情况?我肯定可以看到如何转换的的 N 的的 N 的 为的 N 的?日志( N 的) [登录等式的两边],但是那是种工作倒
..
我感兴趣的创建类似堆栈支持以下操作的Java数据结构,尽可能有效地: 一键,还增加了一个新的元素堆顶上, 流行音乐,这消除了堆栈顶部元素 找到-Max的,它返回(但不删除)堆栈的最大元素,而 找到民,返回(但不删除)堆栈的最小元素,而 什么是最快的实现这个数据结构的?我怎么可能去写它的Java? 解决方案 这是一个经典的数据结构的问题。问题背后的直觉是如下 - 的唯一方法是,如果你把一个新
..
大O 标记 O(N)和小-O 标记 O(N)? 解决方案 F∈O(G)说,基本上 对于至少有一个选择恒定的 K 的> 0,你可以找到一个恒定的在的,这样的不平等F(X) < ķG(x)的成立对于所有的x>一。 需要注意的是O(G)是一套此条件成立。所有功能 F∈O(G)说,基本上 对于每次选择恒定的 K 的> 0,你可以找到一个恒定的在的,这样的不平等F(X)< ķ
..
我真搞不清楚大O,大欧米茄和大西塔符号之间的差异。 据我所知,大O是上界,大欧米茄是下限,但究竟是什么大Ө(THETA)重新present? 我已阅读,这意味着 紧约束的,但什么意思? 解决方案 这意味着,该算法在给定函数两个大O和大欧米茄。 例如,如果是Ө(N),则存在常数 K ,这样你功能(运行时间,等等),大于 N *氏“/ code>足够大的 N ,和一些其他的常 K 这样,你的
..
这是问我在接受采访时,这是我提供的解决方案: 公共静态INT []合并(INT []一,INT []二){ INT []答案=新INT [则为a.length + b.length个] INT I = 0,J = 0,K = 0; 而(I<则为a.length和放大器;&放大器; J< b.length个) { 若(a [1] -
..
我遇到了这样一个问题: 实现一个队列,其中push_rear(),pop_front()和get_min()都是常量时间的操作。 我最初以为用最小堆数据结构,具有O(1)复杂的get_min的()。但push_rear()和pop_front()是O(日志(N))。 有谁知道什么是执行这样的队列有O(1)推(),流行()和MIN()?最好的方法 我GOOGLE了这一点,并希望指出该感谢所有的
..
我问更多有关这意味着我的code。我理解的概念数学,我只是很难环绕我的头周围他们的意思概念。例如,如果一个人对数据结构进行了O(1)操作,据我所知,操作它的量来执行不会增长,因为有更多的项目。而为O(n)操作将意味着你将每个元素上执行一系列操作。可能有人在这里填写的空白? 在什么样的事情究竟会为O(n ^ 2)操作怎么办? 而到底什么意思,如果操作是O(n的log(n))? 而没有人有抽烟裂纹写
..
使用PHP一段时间了之后,我注意到,并非所有的PHP内置函数预期的快。考虑一个函数,发现如果使用的质数的缓存阵列的数是素两个以下可能的实现。 //为大$ prime_array很慢 $ prime_array =阵列(2,3,5,7,11,13,.... 104729,...); $ result_array =阵列(); 的foreach($ array_of_number => $号
..
我目前了解大O符号的运行时间和摊销次。我理解的概念的 O(N)的线性时间,这意味着输入的大小影响算法按比例的增长... ...和同样的,例如,二次时间的为O(n 2 )的etc..even算法,如置换发电机,用的 O(N!)的时候,生长受阶乘。 例如,下面的功能的 O(N)的,因为在算法中的比例增大到其输入的 N 的: F(INT N){ INT I; 对于(I = 0; I&n种+
..
什么是“恒分期时间”,当谈到时间的算法的复杂度是什么意思? 解决方案 深入浅出的摊余时间解释: 如果你做一个操作说万次,你真的不关心最坏情况或最好的情况是操作的 - 你关心的是有多少时间是在拍摄总在重复操作一百万次。 因此,它并不重要,如果操作很慢在一段时间一次,只要“过一段时间”是够罕见的缓慢被摊薄了。从本质上讲分期时间的意思是“每个操作的平均时间服用,如果你做很多操作”。摊余时间不
..
我相信有办法找到在长度的无序排列的n O(n)的第k个最大的元素。也许它的“预期”为O(n)或东西。我们怎样才能做到这一点? 解决方案 这就是所谓发现在 K阶统计。有一个很简单的随机算法(所谓的 quickselect 的)采取 O(N)平均时间,和pretty的复杂的非随机算法回吐 O(N)最坏情况下的时间。有一个关于维基百科的一些信息,但它不是很好。 您需要的一切都在这些PowerPoi
..
大多数人有一定程度的CS肯定会知道什么大O表示。 它帮助我们衡量如何(中)高效的算法确实是,如果你知道哪个类别你正在试图解决的问题奠定了你可以计算出,如果它仍然是可以挤出一点额外的性能。 1 不过我很好奇,怎么办的您的计算或近似您算法的复杂性? 1 但正如他们所说,不要过分,的 premature优化是一切罪恶的根源,并优化无正当原因应受到的名字。 解决方案 我是一个教授的助手在我的数据结
..