Tag: big o

性能方面,番石榴图书馆有多好?

我已经浏览了Google Guava库,并在其中创建了许多优秀,可用的数据结构。 如果有其他人使用过它,那么你可以提供有关它与大数据集一起使用时的表现的反馈吗? 基本上我正在为其运营寻找BigO表示法。 提前致谢

这个for循环的大O分析

sum = 0; for (i = 1; i <= n; i++) { //#1 for (j = 1; j <= i * i; j++) { //#2 if (j % i == 0) { //#3 for (k = 1; k <= j; k++) { //#4 sum++; } } } } 以上让我感到困惑 Suppose #1 runs for N times […]

Big O表示法作业 – 代码片段算法分析?

对于家庭作业,我给了以下8个代码片段来分析并给出运行时间的Big-Oh表示法。 如果我走在正确的轨道上,有人可以告诉我吗? //Fragment 1 for(int i = 0; i < n; i++) sum++; 我想O(N)代表片段1 //Fragment 2 for(int i = 0; i < n; i+=2) sum++; 对于片段2也是O(N) //Fragment 3 for(int i = 0; i < n; i++) for( int j = 0; j < n; j++) sum++; 片段3的O(N ^ 2) //Fragment 4 for(int i = 0; […]

java中2个字符串的.equals的时间复杂度是多少?

我想知道Java中.equals运算符的时间复杂度(大O)是两个字符串。 基本上,如果我做了stringOne.equals(stringTwo),它的表现如何? 谢谢。

在Java中使用HashSets时,方法retainAll的时间和空间复杂度是多少?

例如,在下面的代码中: public int commonTwo(String[] a, String[] b) { Set common = new HashSet(Arrays.asList(a)); common.retainAll(new HashSet(Arrays.asList(b))); return common.size(); }

范围交叉算法优于O(n)?

范围交叉是一个简单但非平凡的问题。 已经回答了两次: 查找数字范围交叉点 比较日期范围 第一个解决方案是O(n),第二个解决方案是数据库(当然小于O(n))。 我有同样的问题,但对于一个大的n,我不在数据库中。 这个问题似乎与存储2D点非常相似, 可以快速检索矩形内的那些,但我看不到它是如何映射的。 那么你将数据结构存储在哪个数据结构中,以便搜索范围的成本低于O(n)? (使用可用于Java的库的额外功劳) 编辑: 我想获得所有相交范围的子集,这意味着搜索范围可以与多个范围相交。 在Java中需要小于O(n)的方法是: public class RangeSet { …. public Set intersects(Range range); …. } 其中Range只是一个包含一对int start和end的类。 这不是一个不可能的问题,我已经有了解决方案,我只是想看看是否有更标准/更简单的方法

这段简单代码的复杂性是什么?

我正在从我的电子书中粘贴这个文本。 它说O(n 2 )的复杂性,并给出了解释,但我没有看到如何。 问题:此代码的运行时间是多少? public String makeSentence(String[] words) { StringBuffer sentence = new StringBuffer(); for (String w : words) sentence.append(w); return sentence.toString(); } 这本书的答案是: O(n 2 ),其中n是句子中的字母数。 原因如下:每次将一个字符串附加到句子上时,您都会创建一个句子副本并遍历句子中的所有字母以将它们复制过来如果您必须在循环中每次迭代最多n个字符,那么您就是循环至少n次,这给你一个O(n 2 )运行时间。 哎哟! 有人可以更清楚地解释这个答案吗?