我试图列出常见数据结构(如数组,二进制搜索树,堆,链表等)的时间复杂性,尤其是我指的是Java。它们很常见,但我想我们当中有些人对确切答案并不100%自信。任何帮助,特别是参考资料,将不胜感激。
例如,对于单链表:更改内部元素为O(1)。你怎么能这样做?你HAVE更改它之前要搜索的元素。同样,对于向量,添加内部元素的方式为O(n)。但是为什么我们不能使用索引在固定的摊销时间内完成呢?如果我缺少某些东西,请纠正我。
我将我的发现/猜测发布为第一个答案。
我试图列出常见数据结构(如数组,二进制搜索树,堆,链表等)的时间复杂性,尤其是我指的是Java。它们很常见,但我想我们当中有些人对确切答案并不100%自信。任何帮助,特别是参考资料,将不胜感激。
例如,对于单链表:更改内部元素为O(1)。你怎么能这样做?你HAVE更改它之前要搜索的元素。同样,对于向量,添加内部元素的方式为O(n)。但是为什么我们不能使用索引在固定的摊销时间内完成呢?如果我缺少某些东西,请纠正我。
我将我的发现/猜测发布为第一个答案。
Answers:
Delete
在Arrays上没有可用的操作。我们可以根据需要将一个元素设置为某个特定值(例如-1、0等)来象征性地删除它Insert
对于数组基本上Set
如开头所述