127 votes

A propos de la méthode sort in intégrée de python

Quel algorithme la méthode sort () intégrée à python utilise-t-elle? Est-il possible de consulter le code de cette méthode?

Merci =)

141voto

Alex Martelli Points 330805

Bien sûr! Le code est ici, à commencer par la fonction islt et de la procédure pour un bon moment;-). Comme Chris commentaire suggère, c'est du code C. Vous aurez également besoin de lire ce fichier texte pour une explication textuelle, les résultats, etc etc.

Si vous préférez la lecture de code Java que du code C, on peut le voir Joshua Bloch de mise en œuvre de timsort et pour Java (Josué est aussi le gars qui a mis en place, en 1997, la modification de mergesort qui est encore utilisé en Java, et on peut espérer que Java va finalement passer à son récent port de timsort).

Quelques explications de la Java port de timsort est ici, la comparaison est ici (avec des liens vers tous les fichiers nécessaires), le fichier de clé est ici -- FWIW, alors que je suis un meilleur programmeur C que programmeur Java, dans ce cas, je trouve Joshua Java code plus lisible que Tim C code;-).

40voto

u0b34a0f6ae Points 14874

Je voulais simplement fournir un lien très utile que je n'avais pas trouvé dans la réponse par ailleurs complète d'Alex: une explication détaillée du timsort de Python (avec des visualisations de graphes!).

(Oui, l'algorithme est essentiellement appelé Timsort maintenant)

10voto

Silfverstrom Points 8132

Dans les premières versions de python, la fonction de tri implémentait une version modifiée de quicksort. Cependant, il a été jugé instable et à partir de la version 2.3, ils ont opté pour un algorithme adaptatif mergesort.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X