Datenstrukturen: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Dietsch (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:


== Laufzeiten und Eigenschaften (nach [http://msdn.microsoft.com/en-us/ MSDN]) ==
== Laufzeiten und Eigenschaften (nach [http://msdn.microsoft.com/en-us/ MSDN]) ==
=== ... ===
=== ... ===
<table class="default">
 
<tr><td class="blank"></td><th colspan="6">Laufzeiten von Methoden</th><td class="blank"></td></tr>
{| class="default"
<tr><td class="blank"></td><th>Add</th><th>Remove</th><th>ElementAt</th><th>Contains</th><th>Clear</th><th>Count</th><th>Element-Typ</th><th>[[ThreadSafety|Thread-safe]]</th><th>Bemerkungen</th></tr>
|-
<tr><th>[http://msdn.microsoft.com/en-us/library/bb359438.aspx HashSet<T>]</th><td>O(1)<br>O(n) wenn Count + 1 > Capacity </td><td>O(1)</td><td>?</td><td>O(1)</td><td>O(n)</td><td>O(1)</td><td>T</td><td>Nein</td><td class="close">keine Duplikate<br>keine Ordnung</td></tr>
| class="blank" | <br>
<tr><th>[http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx LinkedList<T>]</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td class="close"></td></tr>
! colspan="6" | Laufzeiten von Methoden
<tr><th>[http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx List<T>]</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td class="close"></td></tr>
| class="blank" | <br>
<tr><th>[http://msdn.microsoft.com/en-us/library/7977ey2c.aspx Queue<T>]</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td class="close"></td></tr>
|-
<tr><th>[http://msdn.microsoft.com/en-us/library/3278tedw.aspx Stack<T>]</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td class="close"></td></tr>
| class="blank" | <br>
<tr><th>[http://msdn.microsoft.com/en-us/library/ms668265.aspx SynchronizedCollection<T>]</th><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td class="close"></td></tr>
! Add
</table>
! Remove
! ElementAt
! Contains
! Clear
! Count
! Element-Typ
! [[ThreadSafety|Thread-safe]]
! Bemerkungen
|-
! [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)
| ?
| O(1)
| O(n)
| O(1)
| T
| Nein
| class="close" | keine Duplikate<br>keine Ordnung
|-
! [http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx LinkedList&lt;T&gt;]
| O(1)<br>
| O(1)<br>
| O(n)<br>
| O(n)<br>
| O(1)<br>
| O(1)<br>
| T<br>
| Nein<br>
| class="close" | Ordnung<br>Duplikate<br>
|-
! [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(n)<br>
| O(1)<br>
| O(n)<br>
| <br>
| O(1)<br>
| T<br>
| Nein<br>
| class="close" | <br>
|-
! [http://msdn.microsoft.com/en-us/library/7977ey2c.aspx Queue&lt;T&gt;]
| <br>
| <br>
| <br>
| <br>
| <br>
| <br>
| T<br>
| Nein<br>
| class="close" | <br>
|-
! [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>
| <br>
| <br>
| <br>
| <br>
| T<br>
| Nein<br>
| class="close" | <br>
|-
! [http://msdn.microsoft.com/en-us/library/ms668265.aspx SynchronizedCollection&lt;T&gt;]
| <br>
| <br>
| <br>
| <br>
| <br>
| <br>
| T<br>
| Ja<br>
| class="close" | benutzt intern List&lt;T&gt;<br>
|}


=== ... ===
=== ... ===

Version vom 18. April 2009, 23:31 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>





T
Ja
benutzt intern List<T>

...

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