Tri des listes de données est un problème qui a vexé les programmeurs depuis le début de la programmation informatique . Tri toute liste de données peut finir comme une tâche de mémoire et beaucoup de temps. Pour cette raison , les différentes méthodes de tri ont été inventés pour minimiser le défi et de l'effort de tri . Une méthode consiste à fusionner le tri . Elle subdivise une liste récursive en éléments singuliers et recombine la liste sous forme triée. N'importe quel langage de programmation qui supporte la récursivité , tels que Python, peut mettre en place un tri par fusion . Choses que vous devez 
 interpréteur Python avec l'environnement de développement interactif 
 Voir Plus Instructions 
 1 
 définir la fonction " mergesort " . Cette fonction de base s'appelle récursivement , diviser la taille de la liste de moitié à chaque appel . Une fois la fonction mergesort frappe une liste avec un élément, la récursivité s'arrête et le rendement de l'élément. Comme les déroule de récurrence mergesort , chaque petite liste est fusionné ensemble dans l'ordre. Cet exemple affiche une fonction de mergesort de base qui prend une liste en argument : 
 
 >>> def mergesort ( li ) : 
 
 . . . if len ( li ) < 2: 
 
 . . . retourner li 
 
 . . . mid = len ( li ) /2 
 
 . . . premier = mergesort ( li [ : mi ] ) 
 
 . . . last = mergesort ( li [ mi : ] ) 
 
 . . . retourner fusionner ( first, last) 
 2 
 Mettre en place la méthode de fusion. Cette fonction servira de la méthode de tri : elle renvoie une liste triée des éléments. La méthode de fusion prend deux listes déjà triées. Il définit ensuite une liste interne " triés " qui représentera les listes d'arguments triés combinés. La méthode de fusion accomplit cette mission en prenant le plus petit élément et en l'insérant dans une nouvelle liste " classifiées " . Une fois que l'une des listes extrémités , l'autre liste est inséré dans son intégralité 
 
 >>> def fusion ( x , y) : . 
 
 . . . sorted = [] 
 3 
 fusionner les listes dans la méthode de fusion. La boucle "while" dans l'exemple compare chaque élément de la liste en question , en prenant le plus petit élément et en l'insérant dans une nouvelle liste " classifiées " . Une fois que l'une des listes se termine, l'autre liste est insérée dans son intégralité, et la nouvelle liste triée est renvoyée: 
 
 . . . i , j = 0, 0 
 
 . . . tandis que i < len ( x ) et j < len ( y) : 
 
 . . . si x [ i ] < = y [j] : 
 
 . . . sorted.append ( x [i]) 
 
 . . . i + = 1 
 
 . . . autre : 
 
 . . . sorted.append ( y [ j]) 
 
 . . . j + = 1 
 
 . . . triés + = x [ I: ] 
 
 . . . triés + = y [: j] 
 
 . . . retourner triés