嵌套变量类型如何改变时间复杂度?
How do nested variable types change time complexity?
我正在创建一个包含嵌套类型的列表,如下所示:
nested = [{}, set([]), []]
假设 'nested' 中的每个项目都有很多项目。
- 对于 'nested' 中的每种类型的项目,Python's Wiki 中的哪些操作会因为项目是嵌套的而改变复杂性?对于添加、删除、弹出等操作。如果
nested[1]
和 nested[2]
每个都有 1,000 或 10,000 或 1,000,000 项,对 nested[0]
执行操作会改变该字典的复杂性吗?
- 哪些操作会改变列表的复杂性'nested'?对于像
nested.pop(2)
这样的东西,其中 nested[2]
可能有 1,000 个项目。如果 nested[2]
有 1,000,000 个项目,nested.pop(2)
会花费相同的时间吗?
我担心将嵌套项添加到集合、字典和列表中的弹出项会因为嵌套而改变这些操作的 O(1) 优势。
nested[1]
和 nested[2]
对在 nested[0]
上执行操作所花费的时间没有任何影响。一个对象不知道它可能在哪些容器中被引用,也不知道容器中可能有哪些其他对象。
无论添加、删除、检索或替换什么对象,列表操作都需要相同的时间。 nested[2]
是什么并不重要; nested.pop(2)
花费相同的时间。散列大型或高度嵌套的元组或其他可散列对象可能需要更长的时间,因此基于散列的数据结构如 dict
和 set
可能需要更长的时间来处理大型或高度嵌套的键,尽管没有对价值观的任何此类关注。
我正在创建一个包含嵌套类型的列表,如下所示:
nested = [{}, set([]), []]
假设 'nested' 中的每个项目都有很多项目。
- 对于 'nested' 中的每种类型的项目,Python's Wiki 中的哪些操作会因为项目是嵌套的而改变复杂性?对于添加、删除、弹出等操作。如果
nested[1]
和nested[2]
每个都有 1,000 或 10,000 或 1,000,000 项,对nested[0]
执行操作会改变该字典的复杂性吗? - 哪些操作会改变列表的复杂性'nested'?对于像
nested.pop(2)
这样的东西,其中nested[2]
可能有 1,000 个项目。如果nested[2]
有 1,000,000 个项目,nested.pop(2)
会花费相同的时间吗?
我担心将嵌套项添加到集合、字典和列表中的弹出项会因为嵌套而改变这些操作的 O(1) 优势。
nested[1]
和nested[2]
对在nested[0]
上执行操作所花费的时间没有任何影响。一个对象不知道它可能在哪些容器中被引用,也不知道容器中可能有哪些其他对象。无论添加、删除、检索或替换什么对象,列表操作都需要相同的时间。
nested[2]
是什么并不重要;nested.pop(2)
花费相同的时间。散列大型或高度嵌套的元组或其他可散列对象可能需要更长的时间,因此基于散列的数据结构如dict
和set
可能需要更长的时间来处理大型或高度嵌套的键,尽管没有对价值观的任何此类关注。