我已经看到了此页面
https://wiki.python.org/moin/TimeComplexity,
但是我没有看到reverse()
列表中的函数。什么是时间的时间复杂度list
的reverse()
?
我对时间的实验表明,它适用O(n)
于较大的尺寸。有人可以确认吗?
timeit反转大小列表的时间
10 .1027
100 .2347
1000 .6704
10000 6.204
20000 12.9
是的,您是对的,它是O(n),其中n-
列表长度。在此处查找更多信息:https
:
//www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
问题内容: 我注意到python官方网站上set操作的时间复杂度表。但是我只想问一下将列表转换为集合的时间复杂度是多少, 我有点知道这实际上是一个哈希表,但是它到底是如何工作的呢?那是O(n)吗? 问题答案: 是。遍历一个列表is并将每个元素添加到哈希集is ,因此总操作为。
问题内容: 我正在写一个看起来像这样的python函数 因此它被称为 我以为列表的索引访问权限为,但是很惊讶地发现对于大型列表,这比我预期的要慢得多。 那么,我的问题是如何实现python列表,以及以下代码的运行时复杂度是多少? 索引: 从结尾弹出: 从一开始就弹出: 扩展列表: 对于额外的信用,剪接或任意弹出。 问题答案: 在python Wiki上 有一个非常详细的表格,可以回答您的问题。 但
问题内容: 我当时在看这个pycon演讲,时间是34:30,发言人说,可以在中完成获取元素列表中最大的元素的操作。 那怎么可能?我的理解是,创建堆将是,但是其本身的复杂性是还是(以及(实际的算法是什么))? 问题答案: 扬声器在这种情况下是错误的。实际费用为。仅在可迭代的第一个元素上调用堆化。就是那个,但如果小于,则微不足道。然后,将所有剩余的元素一次通过添加到此“小堆”中。每次调用需要花费时间。
问题内容: 我想知道Python中列表对象的pop方法的时间复杂度是多少(特别是CPython)。list.pop(N)的N值也会影响复杂度吗? 问题答案: 因为最后一个元素应该是O(1),因为您只需要返回数组中最后一个元素所引用的元素并更新最后一个元素的索引。我希望任意元素为O(N),平均需要进行N / 2次运算,因为您需要将任何元素移到要在指针数组中向上移一个位置的元素之外。
有人能帮我了解一下这个代码片段的时间和空间复杂性吗?请参考leetcode问题-单词中断II。给定一个非空字符串s和一个包含非空单词列表的字典单词dict,在s中添加空格来构造一个句子,其中每个单词都是有效的字典单词。返回所有这些可能的句子。