Datenstrukturen: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
KKeine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
{| class="default"
{| class="default"
|-
|-
| class="blank" | <br>
| class="blank" | <br>  
! colspan="6" | Laufzeiten von Methoden
! colspan="6" | Laufzeiten von Methoden  
| class="blank" | <br>
| class="blank" | <br>
|-
|-
| class="blank" | <br>
| class="blank" | <br>  
! Add
! Add  
! Remove
! Remove  
! ElementAt
! ElementAt  
! Contains
! Contains  
! Clear
! Clear  
! Count
! Count  
! Element-Typ
! Element-Typ  
! [[ThreadSafety|Thread-safe]]
! [[ThreadSafety|Thread-safe]]  
! Bemerkungen
! Bemerkungen
|-
|-
! [http://msdn.microsoft.com/en-us/library/bb359438.aspx HashSet&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/bb359438.aspx HashSet&lt;T&gt;]  
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity  
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity  
| O(1)
| O(1)  
| ?
| &nbsp;?  
| O(1)
| O(1)  
| O(n)
| O(n)  
| O(1)
| O(1)  
| T
| T  
| Nein
| Nein  
| class="close" | keine Duplikate<br>keine Ordnung
| class="close" | keine Duplikate<br>keine Ordnung
|-
|-
! [http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx LinkedList&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx LinkedList&lt;T&gt;]  
| O(1)<br>
| O(1)<br>  
| O(1)<br>
| O(1)<br>  
| O(n)<br>
| O(n)<br>  
| O(n)<br>
| O(n)<br>  
| O(1)<br>
| O(1)<br>  
| O(1)<br>
| O(1)<br>  
| T<br>
| T<br>  
| Nein<br>
| Nein<br>  
| class="close" | Ordnung<br>Duplikate<br>
| class="close" | Ordnung<br>Duplikate<br>
|-
|-
! [http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx List&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx List&lt;T&gt;]  
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity<br>
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity<br>  
| O(n)<br>
| O(n)<br>  
| O(1)<br>
| O(1)<br>  
| O(n)<br>
| O(n)<br>  
| <br>
| <br>  
| O(1)<br>
| O(1)<br>  
| T<br>
| T<br>  
| Nein<br>
| Nein<br>  
| class="close" | <br>
| class="close" | <br>
|-
|-
! [http://msdn.microsoft.com/en-us/library/7977ey2c.aspx Queue&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/7977ey2c.aspx Queue&lt;T&gt;]  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| T<br>
| T<br>  
| Nein<br>
| Nein<br>  
| class="close" | <br>
| class="close" | <br>
|-
|-
! [http://msdn.microsoft.com/en-us/library/3278tedw.aspx Stack&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/3278tedw.aspx Stack&lt;T&gt;]  
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity <br>
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity <br>  
| O(1)<br>
| O(1)<br>  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| <br>
| <br>  
| T<br>
| T<br>  
| Nein<br>
| Nein<br>  
| class="close" | <br>
| class="close" | <br>
|-
|-
! [http://msdn.microsoft.com/en-us/library/ms668265.aspx SynchronizedCollection&lt;T&gt;]
! [http://msdn.microsoft.com/en-us/library/ms668265.aspx SynchronizedCollection&lt;T&gt;]  
| <br>
| O(1)<br>O(n) wenn Count + 1 &gt; Capacity<br>  
| <br>
| O(n)<br>  
| <br>
| O(1)<br>  
| <br>
| O(n)<br>  
| <br>
| <br>  
| <br>
| O(1)<br>  
| T<br>
| T<br>  
| Ja<br>
| Ja<br>  
| class="close" | benutzt intern List&lt;T&gt;<br>
| class="close" | benutzt intern List&lt;T&gt;<br>
|}
|}

Version vom 18. April 2009, 23:32 Uhr



Hinweise

  • n entspricht immer dem Count der Datenstruktur, d.h. der Anzahl an Elementen in der Struktur.
  • Falls nicht anders angegeben sind Laufzeiten immer Average Case.
  • Alle Links zu den Datenstrukturen zeigen auf die englische Version der MSDN. Diese ist typischerweise vollständiger und genauer als ihre deutsche Übersetzung.
  • Die meisten der hier vorgestellten Datenstrukturen sind Generics. Ihre Verwendung wird im Generic-Artikel erklärt.
  • Mit Element-Typ wird hier der Wert bezeichnet, den der Enumerator bei einer foreach-Anweisung zurückgibt.

Laufzeiten und Eigenschaften (nach MSDN)

...


Laufzeiten von Methoden

Add Remove ElementAt Contains Clear Count Element-Typ Thread-safe Bemerkungen
HashSet<T> O(1)
O(n) wenn Count + 1 > Capacity
O(1)  ? O(1) O(n) O(1) T Nein keine Duplikate
keine Ordnung
LinkedList<T> O(1)
O(1)
O(n)
O(n)
O(1)
O(1)
T
Nein
Ordnung
Duplikate
List<T> O(1)
O(n) wenn Count + 1 > Capacity
O(n)
O(1)
O(n)

O(1)
T
Nein

Queue<T>





T
Nein

Stack<T> O(1)
O(n) wenn Count + 1 > Capacity
O(1)




T
Nein

SynchronizedCollection<T> O(1)
O(n) wenn Count + 1 > Capacity
O(n)
O(1)
O(n)

O(1)
T
Ja
benutzt intern List<T>

...

Laufzeiten von Methoden
AddRemoveElementAtContainsClearCountElement-TypThread-safeBemerkungen
Dictionary<TKey, TValue>
SortedDictionary<TKey, TValue>
Hashtable
SortedList<TKey, TValue>