【发布时间】:2017-09-29 10:33:42
【问题描述】:
我可以列出所有运行时间快的东西吗?有可能有这种类型的列表吗?如果需要通过节点搜索其他节点,我无法理解如何保持搜索或添加时间不变,更不用说添加了。
【问题讨论】:
-
您所说的“这超出了列出清单的目的”是什么意思?
-
如果你使用了一个根据需要加倍大小的扩展列表,你可以实现分期 O(1) 获取、设置和添加,这意味着你最终需要扩展它的大小,但这并不经常发生。很确定这就是 Java 的 ArrayList 类的工作原理。
-
“我无法理解如何在 o(1) 处保持搜索或添加时间”此外,搜索时间不会是 O(1)。仅获取、设置和添加。
-
我无法理解如何在 o(1) 处保持搜索或添加时间。谁说过搜索时间?
-
只是想澄清一下:这里的
add()是指add(E element)(添加到列表末尾,还是add(int index, E element)(添加到特定索引)?如果它包括后一种情况,那么我认为没有任何解决方案(还)。如果您只需要前一种情况,那么ArrayList已经为您服务(在其他答案中解释)
标签: java algorithm time implementation