Tri de comparaison aléatoire optimal

12

Nous connaissons donc tous la borne inférieure de l'arbre de de log 2 n ! sur le nombre le plus défavorable de comparaisons effectuées par un algorithme de tri comparatif (déterministe). Elle ne s'applique pas au tri par comparaison aléatoire (si nous mesurons les comparaisons attendues pour l'entrée du pire cas). Par exemple, pour n = 4 , la borne inférieure déterministe est de cinq comparaisons, mais un algorithme randomisé (permuter aléatoirement l'entrée puis appliquer le tri par fusion) fait mieux, ayant 4 2log2n!n=4 comparaisons en attente pour toutes les entrées.423

Le lié sans les plafonds s'applique toujours dans le cas aléatoire, par un argument de théorie de l'information, et il peut être légèrement resserré à k + 2 ( n ! - 2 k )log2n! Cela suit car il existe un algorithme optimal qui permute de manière aléatoire l'entrée et applique ensuite un arbre de décision (déterministe), et le meilleur arbre de décision (s'il existe) est celui dans lequel toutes les feuilles sont à deux niveaux consécutifs.

k+2(n!2k)n!, where k=log2n!.

Que faire si quelque chose est connu sur les limites supérieures de ce problème? Pour tout , le nombre aléatoire de comparaisons (dans l'attente, pour le pire des cas, pour le meilleur algorithme possible) est toujours strictement meilleur que le meilleur algorithme déterministe (essentiellement, car n ! N'est jamais une puissance de deux) . Mais combien mieux?n>2n!

David Eppstein
la source
lg(n!)+o(n)

Réponses:

4

Puisque votre question est: "Que sait-on?" Voici quelque chose:

http://arxiv.org/abs/1307.3033

logn!+cnc

Pat Morin
la source
nlogn1.415nnlogn1.399n
Je ne suis pas un expert, la seule raison pour laquelle je suis au courant de tout cela est John Iacono. Je pense, cependant, que cela a à voir avec les fluctuations basées sur la proximité de n à (4/3 fois) une puissance de 2. Si vous regardez l'analyse à la page 71 ici, link.springer.com/content/pdf /10.1007%2FBF01934989.pdf , la borne -1.415n semble ne tenir que lorsque n = étage ((4/3) 2 ^ k) pour un entier k. Peut-être que la borne -1.329n de Knuth est la meilleure qui soit valable pour tous les n?
Pat Morin
Il y a certainement des fluctuations mais je pensais que (4/3) 2 ^ k était le pire des cas et c'était mieux pour les autres cas.
David Eppstein