84得票5回答
Python字典键值. "In"操作的时间复杂度

我有一个好奇的问题,主要是想满足自己对这个主题的好奇心。 我正在编写一些使用SQlite数据库后端的大型Python程序,并将来会处理大量记录,因此我需要尽可能地进行优化。 对于一些函数,我正在搜索字典中的键。我一直在使用“in”关键字进行原型设计,并计划稍后返回并优化这些搜索,因为我知道...

82得票9回答
Javascript 中 unshift() 和 push() 的时间复杂度比较问题

我知道在JavaScript中,unshift()和push()方法的区别在于它们是从数组的不同位置添加元素的,但我想知道它们的时间复杂度有什么不同? 我认为push()方法的时间复杂度是O(1),因为你只是将一个元素添加到数组的末尾,但我不确定unshift()方法的时间复杂度,因为我认为...

81得票2回答
multiset、map 和 hash map 的复杂度

我想了解在Big O符号表示法中,STL multiset、map和hash map类的复杂度情况,包括: 插入条目 访问条目 检索条目 比较条目

76得票6回答
访问Python字典的时间复杂度

我正在编写一个简单的Python程序。 我的程序似乎会对字典进行线性访问,尽管算法是二次的,但其运行时间呈现指数级增长。我使用字典来记忆化值。这似乎成为了一个瓶颈。 我在哈希的值是点元组。每个点的形式为:(x,y),0 字典中每个键都是由2-5个点组成的元组:((x1,y1),(x2,y2),...

76得票5回答
ES6中的Map和Set复杂度,V8实现

在V8实现中,检索/查找是否是O(1)的假设是合理的吗?(我知道标准并不保证这一点)

74得票2回答
为什么SortedSet<T>.GetViewBetween不是O(log N)?

在.NET 4.0+中,类SortedSet&lt;T&gt;有一个名为GetViewBetween(l, r)的方法,它返回一个接口视图,其中包含两个指定值之间的所有值。鉴于SortedSet&lt;T&gt;是作为红黑树实现的,我自然期望它以O(log N)时间运行。C++中类似的方法是s...

74得票5回答
O(polylog(n))的意思是什么?特别是,polylog(n)如何定义?

简要: 当学术(计算机科学)论文中提到“O(polylog(n))”时,它们是什么意思? 我对“大O符号”没有困惑,因为我非常熟悉它,但是我对函数polylog(n)感到困惑。 他们没有谈论复杂分析函数Lis(Z),我想。 还是他们? 可能完全不同? 更多细节: 主要出于个人兴趣,我最近一直...

73得票9回答
简化SQL语句的通用规则

我在寻找一些“推理规则”(类似于集合操作规则或逻辑规则),我可以使用这些规则来减少SQL查询的复杂性或大小。是否存在此类规则?是否有相关论文、工具?你自己发现的任何等效性吗?这与查询优化有些相似,但并非指性能方面。 换句话说:如果有一个带有JOINs、SUBSELECTs、UNIONs的(复...

73得票3回答
平均正则表达式算法的时间复杂度是什么?

我并不陌生于使用正则表达式,我理解它们基于有限状态机的基本原理。 然而,我的算法分析能力不太行,我不太明白正则表达式与基本的线性搜索相比如何。我问这个问题是因为从表面上看,它似乎是一个线性数组搜索(如果正则表达式很简单的话)。 我可以去哪里学习更多关于实现正则表达式引擎的内容?

68得票8回答
list::size() 真的是 O(n) 吗?

最近注意到有人提到 std::list::size() 的复杂度为线性。 根据某些资料,事实上这是与实现相关的,因为标准并没有规定复杂度应该是什么。 在这篇博客文章中的评论说:   实际上,这取决于你使用哪个STL。Microsoft Visual Studio V6将size()实现为 ...