【发布时间】:2011-09-26 07:10:14
【问题描述】:
我发现此问题的其他条目涉及特定方法,但并不全面。我想验证一下我自己对这种数据结构最常用方法的理解:
O(1) - 恒定时间:
isEmpty()
add(x)
add(x, i)
set(x, i)
size()
get(i)
remove(i)
O(N) - 线性时间:
indexof(x)
clear()
remove(x)
remove(i)
这是正确的吗?感谢您的帮助。
【问题讨论】:
-
认为 add(x, i) 应该在第二组,如果我理解你的问题。
-
remove(i)在 O(1) 和 O(N) 中 -
remove(i) 在最坏情况和平均情况下都是 O(N),在最好情况下是 O(1)(准确删除最后一个元素)。
标签: java arrays data-structures arraylist abstract-data-type