web-dev-qa-db-fra.com

Quel algorithme utilise sorted () de python?

Duplicata possible:
À propos de la méthode sort () de python intégrée

Le nom dit tout.

J'essaie d'expliquer à quelqu'un pourquoi ils devraient utiliser la fonction sorted () intégrée de Python au lieu de rouler la leur, et j'ai réalisé que je n'ai aucune idée de l'algorithme qu'il utilise.

Si cela importe, nous parlons python 2.7

54
Hartley Brody

Python utilise un algorithme appelé Timsort :

Timsort est un algorithme de tri hybride, dérivé du tri par fusion et du tri par insertion, conçu pour fonctionner correctement sur de nombreux types de données du monde réel. Il a été inventé par Tim Peters en 2002 pour être utilisé dans le langage de programmation Python. L'algorithme recherche des sous-ensembles de données qui sont déjà ordonnés et utilise les sous-ensembles pour trier les données plus efficacement. fait en fusionnant un sous-ensemble identifié, appelé une exécution, avec les exécutions existantes jusqu'à ce que certains critères soient remplis. Timsort est l'algorithme de tri standard de Python depuis la version 2.3. Il est maintenant également utilisé pour trier les tableaux dans Java SE 7, et sur la plate-forme Android.

106
bgporter

L'algorithme de tri est appelé Timsort. Voir timsort

6
Pierce

Depuis 2.3 Python a utilisé timsort.

Plus d'informations: http://bugs.python.org/file4451/timsort.txt

4
David Haynes