Java / List and its implementations
Big O Notation for Arrays vs. Linked List insertions.
O(1) accurately describes inserting at the end of the array. However, if you're inserting into the middle of an array, you have to shift all the elements after that element, so the complexity for insertion in that case is O(n) for arrays.
For linked list, you have to traverse the list to do middle insertions, so that's O(n). You don't have to shift elements down though.
|Array||Dynamic array||Linked list||Balanced Tree|
|Indexing||Θ(n)||Θ(1)||Θ(1)||Θ(log n)||Insert/delete at beginning||Θ(1)||N/A||Θ(n)||Θ(log n)|
|Insert/delete at end||Θ(1)||N/A||Θ(1) amortized||Θ(log n)|
|Insert/delete in middle||search time + Θ(1)||N/A||Θ(n)||Θ(log n)|
More Related questions...