我在Stack Overflow上找到了其他与此问题有关的条目,但没有综合性的内容。我想确认一下我对这种数据结构最常用的方法的理解:
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)
这正确吗?感谢你的帮助。
我在Stack Overflow上找到了其他与此问题有关的条目,但没有综合性的内容。我想确认一下我对这种数据结构最常用的方法的理解:
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)
这正确吗?感谢你的帮助。
大小,isEmpty,get,set,iterator和listIterator操作在常数时间内运行。添加操作以摊销常数时间运行,即添加n个元素需要O(n)时间。所有其他操作都在线性时间内运行(粗略地说)。与LinkedList实现相比,常数因子较低。
remove(i)
的时间复杂度既可以是 O(1),也可以是 O(N)。 - Bala R