L'algorithme de tri rapide peut être divisé en étapes suivantes
Identifiez le pivot.
Partitionnez la liste liée en fonction du pivot.
Divisez la liste chaînée récursivement en 2 parties.
Maintenant, si je choisis toujours le dernier élément comme pivot, alors l'identification de l'élément pivot (1ère étape) prend du temps .
Après avoir identifié l'élément pivot, nous pouvons stocker ses données et les comparer avec tous les autres éléments pour identifier le point de partition correct (2e étape). Chaque comparaison prendra fois que nous stockons les données de pivot et chaque swap prend O ( 1 ) . Donc, au total, il faut O ( n ) temps pour n éléments.
La relation de récurrence est donc:
qui est O ( n log n ) qui est le même qu'en tri par fusion avec une liste chaînée.
Alors, pourquoi le tri par fusion est-il préféré au tri rapide pour les listes liées?