Befindet sich eine Warteschlange mit ganzzahliger Priorität, die Leerzeichen mit den folgenden Operationen verwendet, und zwar im ungünstigsten Fall und ohne Zugriff auf die Zufälligkeit:
createEmptyQueue
in für eine Konstante c .insert
in .deleteMin
Außerdem sind alle weiteren Einfügungen , sobald ein Schlüssel unterworfen wurde .deleteMin
Verwandte Arbeiten:
"Schnelle lokale Suche und Aktualisierung in begrenzten Universen" von Bose et al. Ist schneller als ich brauche, deleteMin
aber langsamer als ich brauche insert
.
Die "Worst Case Constant Time Priority Queue" von Brodnik et al., Die den exotischen "Yggdrasil-Speicher" verwendet. Für die Zwecke dieser Frage interessiere ich mich für mehr Standard-Integer-RAM-Modelle.
Die "Multiprocess Time Queue" von Brodnik und Karlsson , die das Einfügen auf Elemente mit Schlüsseln in , wobei der Wert des Minimums ist Schlüssel.
Beachten Sie, dass dies mit einer Hash-Tabelle ziemlich einfach ist, jedoch Amortisation und Zufälligkeit verwendet:
- Warteschlangen sind Paare aus einer Hash-Schlüsseltabelle und einer Kopie des Mindestschlüssels.
insert
Fügt den Schlüssel der Hash-Tabelle hinzu und aktualisiert gegebenenfalls die minimale Schlüsselkopie.deleteMin
Sucht nach dem Mindestschlüssel in der Hash-Tabelle und sucht dann nach dem nächsten Mindestschlüssel, indem Sie nach suchen .