当前位置: 首页 > 面试题库 >

在某个位置插入列表的成本/复杂性是多少?

司空凌
2023-03-14
问题内容

在Python中,列表必须list.insert(i, x)“在给定位置插入项目”。在C
中,也有一个列表。在C

中,在任何位置插入元素的成本/复杂度为O(1)。Python列表是否相同?如果不是,是否可以使用其他任何方法在Python中获得O(1)插入时间?


问题答案:

Python语言未指定此类操作的实现,因此不同的实现可能具有不同的行为。对于CPython,list.insert如该有用的Wiki页面所示,其复杂度为O(n)。我不知道任何提供O(1)性能的类似列表的结构,可以在任意索引处插入。(字典在一般情况下可提供O(1)插入性能,但没有排序,并且不强制执行连续的索引序列。)该blist库提供了具有O(log
n)插入的优化列表类型。



 类似资料:
  • 我对这两种算法的时间复杂度感到困惑。 usingTreeMap算法的时间复杂度正确吗?我知道在treemap中插入时间是log(n ),但是如果我们遍历一个包含10个元素的数组,它会变成nlog(n)吗?

  • 问题内容: 我注意到python官方网站上set操作的时间复杂度表。但是我只想问一下将列表转换为集合的时间复杂度是多少, 我有点知道这实际上是一个哈希表,但是它到底是如何工作的呢?那是O(n)吗? 问题答案: 是。遍历一个列表is并将每个元素添加到哈希集is ,因此总操作为。

  • 我主要是想理解在堆中插入一个新元素的大O和Omega背后的原因。我知道我可以在网上找到答案,但我真的喜欢有一个彻底的理解,而不是仅仅在网上找到答案,只是一味地记忆。 例如,如果我们有以下堆(以数组格式表示) 如果我们决定插入一个新元素“4”,那么我们的数组现在将如下所示 它将被放置在索引9中,由于这是第0个基于索引的数组,它的父数组将是索引4,也就是元素5。在这种情况下,我们不需要做任何事情,因为

  • 我正在做一个Java练习,要求我遍历arraylist中的每个数字,并为每个数字插入数字加1到列表的下一个位置。完成后返回结果列表。如果提供的列表中没有元素,直接抛出IllegalArgumentException。 这是我到目前为止的代码。我做了抛出异常并遍历列表,我在该列表的找到整数中添加1。但是我不知道如何返回最新的列表,我也不确定我的想法是否正确。感谢您的任何帮助/提示!

  • 问题内容: 这个问题已经在这里有了答案 : 插入``值(从中选择’‘) (26个答案) 3年前关闭。 我正在使用SQL Server 2005。 我有一个3列的table1。和table2有4列。 我想将记录从表1插入到表2中。 但是我不想从table2插入column1中。 我想从column2开始插入。 我能做些什么?谢谢… 问题答案:

  • 问题内容: 我已经看到了此页面 https://wiki.python.org/moin/TimeComplexity, 但是我没有看到列表中的函数。什么是时间的时间复杂度的? 我对时间的实验表明,它适用于较大的尺寸。有人可以确认吗? timeit反转大小列表的时间 问题答案: 是的,您是对的,它是O(n),其中n- 列表长度。在此处查找更多信息:https : //www.ics.uci.edu