Existe-t-il dans une file d'attente de priorité entière qui utilise mots d'espace avec les opérations suivantes, le tout dans le pire des cas et sans accès à l'aléatoire:
createEmptyQueue
en pour une constante .insert
dans .deleteMin
en , où \ delta _ {\ min} est la différence entre la clé la plus petite et la deuxième plus petite.
De plus, une fois qu'une clé a été soumise à a deleteMin
, toutes les autres insertions sont .
Travaux connexes:
"Recherches et mises à jour locales rapides dans les univers délimités" de Bose et al., Qui est plus rapide que ce dont j'ai besoin deleteMin
mais plus lent que ce dont j'ai besoin insert
.
«La pire file d'attente à priorité constante de temps» de Brodnik et al., Qui utilise la «mémoire exotique Yggdrasil». Aux fins de cette question, je suis intéressé par des modèles de RAM entiers plus standard.
Brodnik et Karlsson "Multiprocess Time Queue" , qui limite l'insertion aux éléments avec des clés en , où est la valeur du minimum clé.
Notez que c'est assez simple avec une table de hachage, mais qui utilise l'amortissement et l'aléatoire:
- Les files d'attente sont des paires d'une table de hachage de clés et une copie de la clé minimale.
insert
ajoute la clé à la table de hachage et met à jour la copie de clé minimale, le cas échéant.deleteMin
recherche la clé minimale dans la table de hachage, puis recherche la clé minimale suivante en recherchant dans l'ordre.
la source