为什么 .add(i, E) 在 Java ArrayList 中大 O(n)?
Why is .add(i, E) big O(n) in Java ArrayList?
我想知道为什么 .add(i, E)
是 O(n)
而 .get(i)
是 O(1)
?是不是因为插入后可能 n
个元素必须向右移动?
记住大 O 表示法显示问题的数量级,而不是它的最佳案例解决方案...所以是的,移动 ArrayList 中的其他元素(由 Siddhartha 提到的数组支持)是导致它成为 O 的原因(n).
我想知道为什么 .add(i, E)
是 O(n)
而 .get(i)
是 O(1)
?是不是因为插入后可能 n
个元素必须向右移动?
记住大 O 表示法显示问题的数量级,而不是它的最佳案例解决方案...所以是的,移动 ArrayList 中的其他元素(由 Siddhartha 提到的数组支持)是导致它成为 O 的原因(n).