Difference between revisions of "Template:List data structure comparison"

From blackwiki
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"
!&nbsp;!![[Linked list]]!![[Array data structure|Array]]!![[Dynamic array|Dynamic<br />array]]!![[Self-balancing binary search tree|Balanced<br />tree]]
+
!&nbsp;!![[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

  1. Gerald Kruse. CS 240 Lecture Notes: Linked Lists Plus: Complexity Trade-offs. Juniata College. Spring 2008.
  2. 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)