Als «data-structures» getaggte Fragen

Fragen zur Speicherung von Daten, damit diese von Algorithmen vorteilhaft genutzt werden können.

1
Probleme, bei denen auf Partitionsverfeinerung basierende Algorithmen schneller als in der loglinearen Zeit ausgeführt werden
Partitionsverfeinerung ist eine Technik, bei der Sie mit einer endlichen Menge von Objekten beginnen und die Menge schrittweise aufteilen. Einige Probleme, wie die DFA-Minimierung, können mithilfe der Partitionsoptimierung sehr effizient gelöst werden. Ich kenne keine anderen Probleme, die normalerweise durch Partitionsverfeinerung gelöst werden, außer den auf der Wikipedia-Seite aufgelisteten. Von …

1
Unterstützende Datenstrukturen für die lokale SAT-Suche
WalkSAT und GSAT sind bekannte und einfache lokale Suchalgorithmen zur Lösung des Problems der booleschen Erfüllbarkeit. Der Pseudocode für den GSAT-Algorithmus wird aus der Frage Implementieren des GSAT-Algorithmus kopiert. Wie wird ausgewählt, welches Literal umgedreht werden soll? und unten dargestellt. procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to …



2
Werden Link-Cut-Bäume jemals in der Praxis verwendet, für die Berechnung des maximalen Durchflusses oder für andere Anwendungen?
Bei vielen Max-Flow-Algorithmen, die meiner Meinung nach implementiert sind, bei Dinics Algorithmus, Push Relabel und anderen, können die asymptotischen Zeitkosten durch die Verwendung dynamischer Bäume (auch als Link-Cut-Bäume bezeichnet) verbessert werden . Push-Relabel läuft in oder O ( V 3 ) oder O ( V 2 √O ( V2E)O(V2E)O(V^2E)O ( …

1
Warum hat die funktionale Programmierung keine dynamischen Bäume untersucht?
Diese Frage wurde von Stack Overflow migriert, da sie in Computer Science Stack Exchange beantwortet werden kann. Vor 3 Jahren migriert . Dynamische Bäume spielen eine wichtige Rolle bei der Lösung von Problemen wie Netzwerkflüssen, dynamischen Graphen, kombinatorischen Problemen ("Dynamic Trees in Practice" von Tarjan und Werneck) und kürzlich zusammengeführten …

12
Datenstruktur oder Algorithmus zum schnellen Auffinden von Unterschieden zwischen Zeichenfolgen
Ich habe ein Array von 100.000 Zeichenfolgen, die alle die Länge . Ich möchte jede Zeichenfolge mit jeder anderen Zeichenfolge vergleichen, um festzustellen, ob sich zwei Zeichenfolgen um ein Zeichen unterscheiden. Im Moment, wenn ich jede Zeichenfolge zum Array hinzufüge, überprüfe ich sie mit jeder Zeichenfolge, die sich bereits im …

1
Welche Klassen von Datenstrukturen können persistent gemacht werden?
Persistente Datenstrukturen sind unveränderliche Datenstrukturen. Operationen auf ihnen geben eine neue "Kopie" der Datenstruktur zurück, die jedoch durch die Operation geändert wurde. Die alte Datenstruktur bleibt jedoch unverändert. Effizienz wird im Allgemeinen dadurch erreicht, dass einige der zugrunde liegenden Daten gemeinsam genutzt werden und ein vollständiges Kopieren der Datenstruktur vermieden …

1
Wie hängt die Laufzeit des Ukkonen-Algorithmus von der Alphabetgröße ab?
Ich beschäftige mich mit der Frage nach der asymptotischen Laufzeit des Ukkonen-Algorithmus , dem vielleicht beliebtesten Algorithmus zur Konstruktion von Suffix-Bäumen in linearer (?) Zeit. Hier ist ein Zitat aus dem Buch "Algorithmen für Strings, Bäume und Sequenzen" von Dan Gusfield (Abschnitt 6.5.1): "... die Algorithmen Aho-Corasick, Weiner, Ukkonen und …

1
Gewichtete Summe der letzten N Zahlen
Angenommen, wir empfangen Zahlen in einem Stream. Nachdem jede Zahl empfangen wurde, muss eine gewichtete Summe der letzten Zahlen berechnet werden, wobei die Gewichte immer gleich, aber willkürlich sind.NNN Wie effizient kann dies durchgeführt werden, wenn wir eine Datenstruktur zur Unterstützung der Berechnung beibehalten dürfen? Können wir etwas Besseres tun …


1
Speichern bei Array-Initialisierung
Ich habe kürzlich gelesen, dass es möglich ist, Arrays zu haben, die nicht initialisiert werden müssen, dh, es ist möglich, sie zu verwenden, ohne Zeit aufwenden zu müssen, um jedes Mitglied auf den Standardwert zu setzen. Das heißt, Sie können das Array so verwenden, als ob es mit dem Standardwert …

4
Datenstruktur für Schnittmenge festlegen?
Gibt es eine Datenstruktur, die eine Sammlung von Mengen (von endlichen Mengen) verwaltet, die die folgenden Operationen unterstützt? Jede sublineare Laufzeit wird geschätzt? Initiere ein leeres Set. Fügen Sie einem Set ein Element hinzu. Geben Sie bei zwei Sätzen an, ob sie sich überschneiden.



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.