Ich versuche, ein Problem zu lösen, und ich erkannte, dass die Komplexität meiner Lösung höher als erwartet war aufgrund der Tatsache, dass Insert
für List<T>
ist O (n) (Quelle: https://msdn.microsoft.com/en-us/library/sey5k5z4(v=vs.110).aspx).Hat C# .NET eine Datenstruktur, die die folgenden Eigenschaften erfüllt?
Was ich will, ist eine Datenstruktur wie
- Sequential Behälter
- Hat binäre Suchverfahren, das funktioniert, wenn Elemente, um
- Besser als O (n) Insertion an einem Index sind
- O (1) Anzahl der Elemente in dem Behälter erhalten
- O (1) durch den Index lookup
Mit anderen Worten, ich möchte etwas wie List<T>
außer schnelleres Einfügen.
[LinkedList] (https://msdn.microsoft.com/en-us/library/he2s3bh7 (v = vs.110) .aspx)? –
@MatthewCawley Ich glaube nicht, dass Sie auf ein Element per Index in O (1) mit 'LinkedList' zugreifen können. Z.B. kann nicht tun 'int median = LL [LL.Count/2];' –
user7127000
Okay, ich war mir nicht sicher, ob es alle Kriterien erfüllte, nur um es zur Diskussion zu stellen. Will gespannt sein, die Antwort zu sehen, wenn es ankommt ... –