Tag: big o

高效地find可变数量的string集合的交集

我有一个可变数量的ArrayList的,我需要find的交集。 string数量的现实上限大概是35左右,但可能更多。 我不想要任何代码,只是想法什么是有效的。 我有一个实现,即将开始编码,但想听听其他一些想法。 目前,只是想着我的解决scheme,看起来我应该有一个渐近的Θ(n 2 )运行时间。 感谢您的帮助! tshred 编辑:澄清,我真的只是想知道有没有更快的方式来做到这一点。 比Θ(n 2 )更快。

Python字典键。 “在”复杂性

快速的问题主要满足我对这个话题的好奇心。 我正在用SQlite数据库后端编写一些大型的python程序,将来会处理大量的logging,所以我需要尽可能地进行优化。 对于一些function,我正在通过字典中的键进行search。 我一直在使用“in”关键字进行原型devise,并计划在之后的时间内返回并优化这些search,因为我知道“in”关键字通常是O(n)(因为这只是将python遍历整个列表并进行比较每个元素)。 但是,作为一个python字典基本上只是一个哈希映射,是python解释器足够聪明来解释: if(key in dict.keys()): …code… 至: if(dict[key] != None): …code… 它基本上是相同的操作,但顶部将是O(n),底部将是O(1)。 在我的代码中使用底部版本很容易,但是我只是好奇,想我会问。

将一个对象追加到R中的分摊恒定时间的列表中,O(1)?

如果我有一些R列表mylist ,你可以像这样附加一个项目obj : mylist[[length(mylist)+1]] <- obj 但肯定有一些更紧凑的方式。 当我刚刚在R的时候,我尝试lappend()像lappend()这样写: lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) } 但是当然这并不起作用,因为R的名字叫做语义( lst在调用时被有效地复制,所以在lappend()的范围之外, lst变化是不可见的。我知道你可以在R函数来达到你的函数的范围之外,并且改变了调用环境,但是这似乎是一个很大的锤子来写一个简单的附加函数。 任何人都可以提出一个更美丽的方式做到这一点? 奖励点,如果它的向量和列表。

Java集合框架实现的Big-O摘要?

我可能很快会教授一个“Java崩溃课程”。 虽然假定观众成员可能知道Big-O符号可能是安全的,但假定他们知道各种集合实现上的各种操作的顺序可能是不安全的。 我可以花时间自己创build一个总结matrix,但是如果它已经在公共领域的某个地方,我肯定会重用它(当然,要有适当的信用)。 任何人有任何指针?

用于PHP函数的Big-O列表

现在使用PHP一段时间后,我注意到并不是所有的PHP函数的function都像预期的那样快。 考虑以下两种可能的函数实现,使用caching的素数arrays来查找数字是否为素数。 //very slow for large $prime_array $prime_array = array( 2, 3, 5, 7, 11, 13, …. 104729, … ); $result_array = array(); foreach( $prime_array => $number ) { $result_array[$number] = in_array( $number, $large_prime_array ); } //speed is much less dependent on size of $prime_array, and runs much faster. $prime_array => array( 2 => NULL, […]

如何将两个有序数组合并到一个有序数组中?

这是在面试中问我的,这是我提供的解决scheme: public static int[] merge(int[] a, int[] b) { int[] answer = new int[a.length + b.length]; int i = 0, j = 0, k = 0; while (i < a.length && j < b.length) { if (a[i] < b[j]) { answer[k] = a[i]; i++; } else { answer[k] = b[j]; j++; } k++; } while […]

标准容器的复杂性保证是什么?

显然;-)标准容器提供了某种forms的保证。 什么types的保证和不同types的容器之间的差异究竟是什么? 从SGI网页 (关于STL )工作,我想出了这个: Container Types: ================ Container: Forward Container Reverse Container Random Access Container Sequence Front Insert Sequence Back Insert Sequence Associative Container Simple Associative Container Pair Associative Container Sorted Associative Container Multiple Associative Container Container Types mapped to Standard Containers ============================================= std::vector: Sequence Back Sequence Forward/Reverse/Random Container std::deque: Sequence Front/Back Sequence Forward/Reverse/Random […]

如何在O(n)中find长度为n的未sorting数组中的第k个最大元素?

我相信有一种方法可以在O(n)中find长度为n的未sorting数组中的第k个最大元素。 或者,也许它是“预计”O(n)什么的。 我们怎么做到这一点?