根据Wikipedia关于链表的文章,在链表的中间插入被视为O(1)。我认为这将是O(n)。您是否不需要定位列表末尾附近的节点?
这种分析是否不考虑发现节点操作(尽管是必需的),而仅考虑插入本身?
编辑:
链接列表比数组具有多个优势。在列表的特定点插入元素是一项固定时间的操作,而在数组中插入则可能需要移动一半或更多的元素。
上面的陈述对我有些误导。如果我错了,请纠正我,但我认为结论应该是:
数组:
- 查找插入/删除点O(1)
- 执行插入/删除O(n)
链接列表:
- 找出插入/删除点O(n)
- 执行插入/删除O(1)
我认为,您唯一不需要找到位置的就是保持某种指针(在某些情况下为头和尾)。因此,我们不能断然地说,链表总是在插入/删除选项中击败数组。