Maintenir l'ordre dans une liste en


15

Le problème de maintenance des commandes (ou «maintien de l'ordre dans une liste») est de supporter les opérations:

  • singleton: crée une liste avec un élément, lui renvoie un pointeur
  • insertAfter: donné un pointeur sur un élément, insère un nouvel élément après, renvoyant un pointeur sur le nouvel élément
  • delete: donne un pointeur sur un élément, le supprime de sa liste
  • minPointer: étant donné deux pointeurs vers des éléments de la même liste, renvoie celui le plus proche du début de la liste

Je connais trois solutions à ce problème qui effectuent toutes les opérations en temps amorti . Ils utilisent tous la multiplication.O(1)

L'ordre peut-il être maintenu dans une liste en temps amorti sans utiliser d'opérations arithmétiques non en A C 0 ?O(1)UNEC0


La multiplication n'a été que récemment (depuis le Pentium III) dans . Pouvons-nous inclure des solutions qui utilisent la multiplication? UNEC0
AU

Je ne pense pas que ce soit correct. Tout d'abord, je ne pense pas que la multiplication soit en . Deuxièmement, je ne pense pas que des machines particulières, comme le Pentium III que vous mentionnez, aient quelque chose à voir avec la question de savoir si la multiplication est en A C 0 . Enfin, comme démontré dans la question, je suis évidemment au courant de plusieurs algorithmes basés sur la multiplication pour ce problème, donc ajouter plus dans une nouvelle "réponse" n'améliore en rien les choses. UNEC0UNEC0
jbapple

Trouvé où j'ai lu à ce sujet; il s'agissait du Pentium 4 et non du III; et n'a pas implémenté la multiplication a plutôt travaillé autour d'elle avec une nouvelle instruction de ce processeur: M. Thorup, `` On AC0 Implementations of Fusion Trees and Atomic Heaps '', in Proceedings of the Fourteen Annual ACM-SIAM Symposium on Discrete Algorithms, Philadelphia, PA, USA, 2003, p. 699–707.
AU

Réponses:


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.