J'ai du mal à trouver de bonnes ressources qui donnent le pire des cas en place stable algorithme de tri. Est-ce que quelqu'un connaît de bonnes ressources?
Juste un rappel, en place signifie qu’il utilise le tableau transmis et que l’algorithme de tri n’est autorisé qu’à utiliser un espace supplémentaire constant. Stable signifie que les éléments avec la même clé apparaissent dans le même ordre dans le tableau trié que dans l'original.
Par exemple, le tri par fusion naïf est le pire des cas et stable, mais utilise espace supplémentaire. Le tri rapide standard peut être rendu stable, est en place mais est le cas le plus défavorable . Heapsort est en place, dans le pire des cas mais n'est pas stable. Wikipedia a un bon tableau indiquant quels algorithmes de tri ont quels inconvénients. Notez qu’ils ne répertorient aucun algorithme de tri contenant les trois conditions de stabilité, le cas le plus défavorable et le fait d’être en place.O ( nO ( n 2 ) O ( n ln n )
J'ai trouvé un article intitulé "Practical in place mergesort" de Katajainen, Pasanen et Teuhola, qui prétend avoir le cas le plus défavorable à la place de la variante mergesort stable. Si je comprends bien leurs résultats, ils utilisent (bottom-up?) Mergesort de manière récursive sur le premier du tableau et ce dernier du tableau et utilisent le second comme espace de travail pour effectuer la fusion. Je suis toujours en train de le lire, donc j'apprécierais plus si j'interprète correctement leurs résultats.1 1 1
Je serais également très intéressé par le pire des cas en place de quicksort stable. D'après ce que j'ai compris, modifier le tri rapide comme étant le cas le plus défavorable nécessite de choisir un pivot approprié qui détruirait la stabilité dont il jouirait normalement normalement.O ( n ln n )
Ceci est purement d’intérêt théorique et je n’ai aucune application pratique. Je voudrais juste savoir l'algorithme qui a ces trois caractéristiques.