Difference between revisions of "Template:List data structure comparison"
Jump to navigation
Jump to search
imported>Dcoetzee (Let's say indexing for short) |
(random access list) |
||
| Line 1: | Line 1: | ||
<div class=tright align=right> | <div class=tright align=right> | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | ! !![[Linked list]]!![[Array data structure|Array]]!![[Dynamic array|Dynamic<br />array]]!![[Self-balancing binary search tree|Balanced<br />tree]] | + | ! !![[Linked list]]!![[Array data structure|Array]]!![[Dynamic array|Dynamic<br />array]]!![[Self-balancing binary search tree|Balanced<br />tree]]!![[Random access<br /> list]] |
|- | |- | ||
|Indexing | |Indexing | ||
| Line 7: | Line 7: | ||
|style="background:#ddffdd"|Θ(1) | |style="background:#ddffdd"|Θ(1) | ||
|style="background:#ddffdd"|Θ(1) | |style="background:#ddffdd"|Θ(1) | ||
| + | |style="background:#ffffdd"|Θ(log n) | ||
|style="background:#ffffdd"|Θ(log n) | |style="background:#ffffdd"|Θ(log n) | ||
|- | |- | ||
| Line 14: | Line 15: | ||
|style="background:#ffdddd"|Θ(''n'') | |style="background:#ffdddd"|Θ(''n'') | ||
|style="background:#ffffdd"|Θ(log n) | |style="background:#ffffdd"|Θ(log n) | ||
| + | |style="background:#ddffdd"|Θ(1) | ||
|- | |- | ||
|Insert/delete at end | |Insert/delete at end | ||
| Line 20: | Line 22: | ||
|style="background:#ddffdd"|Θ(1) [[Amortized analysis|amortized]] | |style="background:#ddffdd"|Θ(1) [[Amortized analysis|amortized]] | ||
|style="background:#ffffdd"|Θ(log n) | |style="background:#ffffdd"|Θ(log n) | ||
| + | |style="background:#ffffdd"|Θ(log n) updating | ||
|- | |- | ||
|Insert/delete in middle | |Insert/delete in middle | ||
| Line 26: | Line 29: | ||
|style="background:#ffdddd"|Θ(''n'') | |style="background:#ffdddd"|Θ(''n'') | ||
|style="background:#ffffdd"|Θ(log n) | |style="background:#ffffdd"|Θ(log n) | ||
| + | |style="background:#ffffdd"|Θ(log n) updating | ||
|- | |- | ||
|Wasted space (average) | |Wasted space (average) | ||
| Line 31: | Line 35: | ||
|style="background:#ddffdd"|0 | |style="background:#ddffdd"|0 | ||
|style="background:#ffdddd"|Θ(''n'')<ref name="brodnik">{{Citation | title=Resizable Arrays in Optimal Time and Space | date=Technical Report CS-99-09 | url=http://www.cs.uwaterloo.ca/research/tr/1999/09/CS-99-09.pdf | year=1999 | first1=Andrej | last1=Brodnik | first2=Svante | last2=Carlsson | first5=ED | last5=Demaine | first4=JI | last4=Munro | first3=Robert | last3=Sedgewick | author3-link=Robert Sedgewick (computer scientist) | publisher=Department of Computer Science, University of Waterloo}}</ref> | |style="background:#ffdddd"|Θ(''n'')<ref name="brodnik">{{Citation | title=Resizable Arrays in Optimal Time and Space | date=Technical Report CS-99-09 | url=http://www.cs.uwaterloo.ca/research/tr/1999/09/CS-99-09.pdf | year=1999 | first1=Andrej | last1=Brodnik | first2=Svante | last2=Carlsson | first5=ED | last5=Demaine | first4=JI | last4=Munro | first3=Robert | last3=Sedgewick | author3-link=Robert Sedgewick (computer scientist) | publisher=Department of Computer Science, University of Waterloo}}</ref> | ||
| + | |style="background:#ffdddd"|Θ(''n'') | ||
|style="background:#ffdddd"|Θ(''n'') | |style="background:#ffdddd"|Θ(''n'') | ||
|} | |} | ||
</div> | </div> | ||
<noinclude>{{Template reference list}}</noinclude> | <noinclude>{{Template reference list}}</noinclude> | ||
Revision as of 05:09, 31 October 2011
| Linked list | Array | Dynamic array |
Balanced tree |
[[Random access list]] | |
|---|---|---|---|---|---|
| Indexing | Θ(n) | Θ(1) | Θ(1) | Θ(log n) | Θ(log n) |
| Insert/delete at beginning | Θ(1) | N/A | Θ(n) | Θ(log n) | Θ(1) |
| Insert/delete at end | Θ(1) | N/A | Θ(1) amortized | Θ(log n) | Θ(log n) updating |
| Insert/delete in middle | search time + Θ(1)[1] |
N/A | Θ(n) | Θ(log n) | Θ(log n) updating |
| Wasted space (average) | Θ(n) | 0 | Θ(n)[2] | Θ(n) | Θ(n) |
References
- ↑ Gerald Kruse. CS 240 Lecture Notes: Linked Lists Plus: Complexity Trade-offs. Juniata College. Spring 2008.
- ↑ Brodnik, Andrej; Carlsson, Svante; Sedgewick, Robert; Munro, JI; Demaine, ED (Technical Report CS-99-09), Resizable Arrays in Optimal Time and Space (PDF), Department of Computer Science, University of Waterloo Check date values in:
|date=, |year= / |date= mismatch(help)