Ganzzahlige Prioritätswarteschlange mit verteilungsabhängigem deleteMin


12

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:Ö(n)

  • createEmptyQueuein für eine Konstante c .Ö(lGcU)c
  • insertin .Ö(1)
  • deleteMinÖ(δMindest)δMindest

Außerdem sind alle weiteren Einfügungen , sobald ein Schlüssel unterworfen wurde .kdeleteMin>k

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.(kMindest,kMindest+δMindest]kMindest

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.
  • deleteMinSucht nach dem Mindestschlüssel in der Hash-Tabelle und sucht dann nach dem nächsten Mindestschlüssel, indem Sie nach suchen .kMindest+1,kMindest+2,kMindest+3,

Antworten:


1

In diesem Artikel [1] wurde zusätzlich die Eigenschaft "Zeitfinger" eingeführt, eine vereinheitlichte Eigenschaft, die sowohl die Arbeitssatz- als auch die Warteschlangeneigenschaften umfasst:

Wir stellen eine Prioritätswarteschlange vor, die die Operationen unterstützt: Einfügen im ungünstigsten Fall konstanter Zeit und Löschen, Löschen von min, Suchen von min und Verringern von Schlüssel für ein Element im ungünstigsten Fall Zeit, wobei (bzw. ) die Anzahl der Elemente ist, auf die nach (bzw. vor) dem letzten Zugriff von zugegriffen wurde und die sich zum Zeitpunkt der Ausführung der entsprechenden Operation noch in der Prioritätswarteschlange befinden .xÖ(lG(michn{wx,qx}+2))wxqxx

[1] A. Elmasry, A. Farzan und J. Iacono, "Eine einheitliche Eigenschaft für verteilungssensitive Prioritätswarteschlangen", in Combinatorial Algorithms, vol. 7056, C. Iliopoulos und W. Smyth, Hrsg. Springer Berlin Heidelberg, 2011, S. 209–222.


Dies beantwortet die Frage nicht. Ich bitte um Operationen, deren Zeit proportional zur Entfernung vom kleinsten zum zweitkleinsten Schlüssel ist. Diese Kennzahl ist mit einer auf und basierenden . wxqx
Jbapple

Technisch ist es abhängig von diesen Variablen; was bedeutet, dass die deleteMin verteilungsempfindlich ist, oder?
AT

wx und können unabhängig von variieren . qxδMindest
Jbapple
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.