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:
createEmptyQueuein für eine Konstante c .insertin .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, deleteMinaber 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.
insertFügt den Schlüssel der Hash-Tabelle hinzu und aktualisiert gegebenenfalls die minimale Schlüsselkopie.deleteMinSucht nach dem Mindestschlüssel in der Hash-Tabelle und sucht dann nach dem nächsten Mindestschlüssel, indem Sie nach suchen .