| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Python >> Content
    Récursive Merge Trier en Python
    Le tri est traditionnellement une tâche difficile en informatique . Le choix d'un algorithme de tri qui est efficace et rapide peut être difficile. Souvent , le choix de l'algorithme efficace implique la connaissance des données qui sont triées, et trie spécialisés travaillent habituellement beaucoup mieux que les algorithmes de tri généralisé . Cependant, certaines espèces , comme le " tri par fusion , " peuvent travailler dans des situations généralisées en brisant les jeux et le tri des petits morceaux de manière récursive. La liste

    Un tri par fusion est un " diviser pour régner " algorithme , en ce qu'elle prend des portions des listes et leur casse en permanence en deux moitiés jusqu'à atteindre les éléments uniques de la liste , qui sont ensuite fusionnées en commande. Par exemple, commencer avec une liste numérique comme

    5 6 2 4 1 9 8 3 7 Photos

    Tri d'une liste comme celle-ci avec un tri par fusion , il faudra réduire de moitié la taille de la liste jusqu'à ce que chaque numéro de base seul existe . Ensuite, le tri peut comparer les chiffres et les mettre ensemble dans le bon ordre (plus bas au plus élevé, dans ce cas) .
    La fusion Méthode

    la méthode Merge est simple:

    def fusion (premier, deuxième )

    Prendre deux listes , la méthode de les fusionner en commençant au début de chaque liste. Il ajoute ensuite la prochaine montant minimum de chaque liste dans une nouvelle liste . Le résultat est une liste triée. ( Rappelez-vous de bien insérer un espace blanc de tabulation après le " tout " et " if /else " énoncés . ) :

    Tout i < len ( premier ) et j < len ( seconde) :
    < p> si le premier [ i ] < = seconde [j] :

    new_list.append ( premier [i])

    i = i + 1

    autre :

    new_list.append ( deuxième [ j])

    j = j + 1}

    Enfin, après une seule liste extrémités , les valeurs restantes sont placées dans la nouvelle liste :

    new_list + = premier [ i: ]

    new_list + = seconde [ j : ]

    retour end_list
    tri par fusion Conditions

    le tri par fusion réelle entraîne l' algorithme de tri principal . Il ya deux parties fonctionnelles principales : l'aspect conditionnel qui arrête la récursivité une fois que les listes sont divisées et la récursion réelle qui réduit de moitié les listes. L' état ​​d'arrêt vient en premier :

    def mergesort ( liste):

    if len ( liste) == 1:

    retour Liste

    Cela garantit que quand une liste sous atteigne un seul élément , cet élément est retourné afin qu'il soit fusionné avec les autres numéros .
    Merge Trier récursivité

    La seconde moitié du le tri est la récursivité. Après le "if" /conditionnel , comme suit:

    autre :

    milieu = len ( liste) /2

    start = mergesort ( liste [ milieu : ] ) Photos

    end = mergesort ( liste [: milieu ] )

    retour fusion ( début, fin )

    raison de récursivité, après que les listes sont divisées en éléments simples, l'algorithme pistes remonter à la dernière méthode exécutée . Donc , au moment où la déclaration «retour fusion ( début, fin ) " exécute , l'algorithme renvoie une fusion , une liste triée des deux listes triées , précédemment fusionnées de plus petite taille .

    Previous :

    next :
      articles connexes
    ·Comment lister les disques en Python 
    ·Comment calculer les voyelles en Python 
    ·Comment faire pour convertir des scripts MATLAB pour Py…
    ·Comment vérifier le Dictionnaire de correspondance exa…
    ·Comment éclaircir une image en Python 
    ·Comment exécuter un script Python partir d'un shell 
    ·Comment créer des modules Python 
    ·Comment passer une fonction comme un argument en Python…
    ·Comment vérifier si une valeur est dans un Hash en Pyt…
    ·Comment concaténer des listes en Python 
      articles en vedette
    ·Qu'est-ce qu'un proxy client 
    ·Comment créer un cadre à l'aide HTML Programmation 
    ·Comment créer une division en tant que Scriptaculous D…
    ·Comment utiliser le login Checksum 
    ·Comment agréger mêmes valeurs dans MySQL 
    ·Comment modifier un PDF au format SWF en PHP 
    ·Comment faire le premier caractère d' une chaîne en C…
    ·Comment se connecter à une URL avec VBS 
    ·Comment construire des applications client-serveur avec…
    ·Tutoriel en Pascal Programmation Animation 
    Copyright © Connaissances Informatiques http://fr.wingwit.com