这是我学习数据结构的第一门课程,每节课/助教讲座中我们都会谈到O(log(n))。也许这是一个愚蠢的问题,但我很希望有人能够解释一下它到底是什么意思!
我有一个好奇的问题,主要是想满足自己对这个主题的好奇心。 我正在编写一些使用SQlite数据库后端的大型Python程序,并将来会处理大量记录,因此我需要尽可能地进行优化。 对于一些函数,我正在搜索字典中的键。我一直在使用“in”关键字进行原型设计,并计划稍后返回并优化这些搜索,因为我知道...
我遇到了这个问题:实现一个队列,使得push_rear()、pop_front()和get_min()的时间复杂度都为常数级别。 我最初想到使用最小堆数据结构来实现get_min(),因为它的复杂度为O(1)。但是push_rear()和pop_front()的复杂度将会是O(log(n))...
我知道你可以通过键来访问你的集合。然而,哈希函数本身在幕后执行了许多操作,是吗? 假设你有一个非常有效的好哈希函数,它仍然可能需要执行许多操作。 这可否解释一下?
我想了解在Big O符号表示法中,STL multiset、map和hash map类的复杂度情况,包括: 插入条目 访问条目 检索条目 比较条目
我刚刚发现了一个奇怪的事实,在普通的数学中,n*logn 将小于 n,因为 log n 通常小于 1。 那么为什么 O(nlog(n)) 大于 O(n) 呢?(即为什么认为 nlogn 花费的时间更长) 大 O 表示法遵循不同的系统吗?
可能是重复问题: 什么是大O符号?你使用它吗? 大家好, 这是一个相当基础的可伸缩性符号问题。 最近我在一篇文章中收到了一条评论,说我的 Python 有序列表实现“但要注意你的‘有序集合’实现对插入的时间复杂度是O(N)”。 这很好,但我不确定这是什么意思。 我见过类...
假设我有一个 Python 列表 my_list,其中包含 N 个元素。要获取单个元素,可以使用 my_list[i_1] 获取索引为 i_1 的元素。此外,Python 列表还支持对列表进行切片操作,如 my_list[i_1:i_2],表示获取从索引 i_1 到 i_2 的子列表。对于大小...
因此,考虑以下程序: 这个程序的时间复杂度是O(0)吗?换句话说,0是O(0)吗? 我认为在单独的问题中回答这个问题会阐明这个问题。 编辑:这里有很多好答案! 我们都同意0是O(1)。 问题是,0也是O(0)吗?