我试图列出常见数据结构(如数组,二进制搜索树,堆,链表等)的操作的时间复杂性,尤其是我指的是Java。它们很常见,但我想我们中的一些人对确切的答案并不是100%有信心。任何帮助,尤其是参考,都非常感谢。
E.g。对于单链表:更改内部元素是O(1)。你怎么能这样做?您已在更改之前搜索元素。另外,对于Vector,添加内部元素为O(n)。但是为什么我们不能在使用索引的摊销常数时间内做到这一点?如果我错过了什么,请纠正我。
我发布我的发现/猜测作为第一个答案。
答案 0 :(得分:207)
Delete
操作可用。我们可以通过将元素设置为某个特定值来符号删除元素,例如-1,0等,取决于我们的要求Insert
基本上是Set
,如开头所述