Diese beiden scheinen sehr ähnlich zu sein und haben eine fast identische Struktur. Was ist der Unterschied? Was sind die Zeitkomplexitäten für verschiedene Operationen von
Fragen zur Speicherung von Daten, damit diese von Algorithmen vorteilhaft genutzt werden können.
Diese beiden scheinen sehr ähnlich zu sein und haben eine fast identische Struktur. Was ist der Unterschied? Was sind die Zeitkomplexitäten für verschiedene Operationen von
Ich habe mich über diese Frage gewundert, seit ich Student war. Es ist eine allgemeine Frage, aber ich werde sie im Folgenden anhand von Beispielen erläutern. Ich habe viele Algorithmen gesehen - zum Beispiel für Probleme mit maximalem Durchfluss kenne ich 3 Algorithmen, die das Problem lösen...
Es wird oft gesagt, dass die Hash-Tabellensuche in konstanter Zeit abläuft: Sie berechnen den Hash-Wert, der Ihnen einen Index für eine Array-Suche gibt. Dabei werden Kollisionen ignoriert. im schlimmsten Fall landet jedes Objekt im selben Bucket und die Suchzeit wird linear ( ).Θ ( n...
Wenn ich eine Liste mit Schlüsselwerten von 1 bis 100 habe und diese in einem Array von 11 Buckets organisieren möchte, wurde mir das Bilden einer Mod-Funktion beigebracht H=kmod 11H=kmod 11 H = k \bmod \ 11 Jetzt werden alle Werte nacheinander in 9 Zeilen platziert. Zum Beispiel gibt es im ersten...
Es gibt sehr viele Datenstrukturen, die die Priority-Queue-Schnittstelle implementieren: Einfügen: Fügt ein Element in die Struktur ein Get-Min: Gibt das kleinste Element in der Struktur zurück Extract-Min: Entfernt das kleinste Element in der Struktur Übliche Datenstrukturen, die diese...
Überall, wo ich hinschaue, werden Datenstrukturen mithilfe von rot-schwarzen Bäumen implementiert ( std::setin C ++, SortedDictionaryin C # usw.). Nachdem ich gerade (a, b), Rot-Schwarz- und AVL-Bäume in meinem Algorithmus-Kurs behandelt habe, habe ich Folgendes herausgefunden (auch nachdem ich...
Nehmen wir die folgende Definition eines rot-schwarzen Baums an: Es ist ein binärer Suchbaum. Jeder Knoten ist entweder rot oder schwarz gefärbt. Die Wurzel ist schwarz. Zwei durch eine Kante verbundene Knoten können nicht gleichzeitig rot sein. Hier sollte eine gute Definition eines NIL-Blattes...
Ich versuche eine Rechtschreibprüfung zu schreiben, die mit einem ziemlich großen Wörterbuch funktionieren sollte. Ich möchte wirklich, dass meine Wörterbuchdaten auf effiziente Weise indexiert werden, um anhand einer Damerau-Levenshtein- Distanz zu bestimmen, welche Wörter dem falsch geschriebenen...
Ich verstehe, dass die "Struktur" von Daten vollständig von der Booleschen Algebra abhängt, aber: Warum werden Daten nicht als kontinuierliche, sondern als diskrete mathematische Einheit betrachtet? Im Zusammenhang damit: Was sind die Nachteile oder Invarianten, die bei der Strukturierung von Daten...
Ich bin noch nicht einmal ein CS-Student, also ist das vielleicht eine blöde Frage, aber bitte trage sie mit mir ... Im Zeitalter vor dem Computer können wir eine Array-Datenstruktur nur mit so etwas wie einem Array von Schubladen implementieren. Da man die Schublade mit dem entsprechenden Index...
Ich lerne etwas über Radix-Bäume (aka komprimierte Versuche) und Patricia-Versuche, finde aber widersprüchliche Informationen darüber, ob sie tatsächlich gleich sind oder nicht. Ein Radix-Baum kann aus einem normalen (nicht komprimierten) Versuch erhalten werden, indem Knoten mit ihren Eltern...
Bei der Implementierung eines Wörterbuchs ("Ich möchte Kundendaten anhand ihrer Kunden-IDs nachschlagen") werden typischerweise Hash-Tabellen und binäre Suchbäume verwendet. Ich weiß zum Beispiel, dass die C ++ STL-Bibliothek Wörterbücher (sie nennen sie Maps) mithilfe von (ausgeglichenen) binären...
Intuitiv sollten "ausgeglichene Bäume" Bäume sein, bei denen die linken und rechten Unterbäume an jedem Knoten "ungefähr die gleiche" Anzahl von Knoten haben müssen. Wenn wir davon sprechen, dass rot-schwarze Bäume * (siehe Definition am Ende) ausgeglichen sind, meinen wir natürlich, dass sie Höhe...
Ich habe eine Reihe von Paaren. Jedes Paar hat die Form (x, y), sodass x, y zu ganzen Zahlen aus dem Bereich gehören [0,n). Wenn also n 4 ist, dann habe ich die folgenden Paare: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) Ich habe schon die Paare. Jetzt muss ich eine Kombination mit n/2Paaren erstellen,...
Wikipedia und andere Quellen, die ich gefunden habe, listen den voidTyp C als Einheitentyp und nicht als leeren Typ auf. Ich finde das verwirrend, da es mir so scheint, als ob es voidbesser zur Definition eines Leer- / Bodentyps passt. voidSoweit ich das beurteilen kann, gibt es keine Werte . Eine...
Ich suche nach einer Datenstruktur , dass speichert einen Satz von Saiten über einen Zeichensatz , können die folgenden Operationen durchführen. Wir bezeichnen D ( S ) als die Datenstruktur, die den Satz von Zeichenketten S speichert .ΣΣ\SigmaD(S)D(S)\mathcal{D}(S)SSS Add-Prefix-Seton : Bei...
Ich habe zwei Definitionen von ausgeglichenen binären Bäumen gesehen, die für mich unterschiedlich aussehen. Ein Binärbaum ist ausgeglichen, wenn für jeden Knoten gilt, dass sich die Anzahl der inneren Knoten im linken Teilbaum und die Anzahl der inneren Knoten im rechten Teilbaum um höchstens 1...
Gibt es eine Datenstruktur, um eine geordnete Liste zu führen, die die folgenden Operationen in Amortized Time unterstützt?O ( 1 )O(1)O(1) GetElement (k) : Liefert das te Element der Liste.kkk InsertAfter (x, y) : Fügt das neue Element y unmittelbar nach x in die Liste ein. Löschen (x) : Entfernen...
Ich suche nach einer Datenstruktur, die eine effiziente ungefähre Suche nach Schlüsseln unterstützt (z. B. Levenshtein-Abstand für Zeichenfolgen), wobei die bestmögliche Übereinstimmung für die Eingabetaste zurückgegeben wird. Die am besten geeignete Datenstruktur, die ich bisher gefunden habe,...
Ich verstehe nicht ganz, warum die Rotation in der Splay-Tree-Datenstruktur nicht nur das übergeordnete Element des Bewertungsknotens berücksichtigt, sondern auch das übergeordnete Element (Zick-Zack- und Zick-Zick-Operation). Warum würde das folgende nicht funktionieren: Wenn wir beispielsweise...