Connaissances Informatiques >> programmation >> Programmation Python >> Content
  Derniers articles
  • Comment exécuter un script Python à…
  • Comment Passer les lignes de comment…
  • Comment remplacer une date en Python…
  • Comment faire pour créer des tablea…
  • Comment formater une chaîne sur Pyt…
  • Comment faire pour obtenir le mode d…
  • Python Tk Tutorial 
  • Liste Python écrase 
  • Comment faire pour supprimer le prem…
  • Comment Loop Through une liste de fi…
  •   Programmation Python
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Programmation Python

    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 .

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment obtenir appuie sur la touche en Python 
  • Comment trier séquence Symboles 
  • Comment apprendre Python dans Ubuntu 
  • Comment changer la version de Python dans Snow Leopard 
  • Comment copier une liste contenant des objets en Python 
  • Qu'est-ce qu'un répertoire Python 
  • Mise en boucle de toutes les propriétés d'un objet Python 
  • Comment faire pour extraire le premier chiffre Python 
  • Comment charger un script Python 
  • Comment faire pour supprimer les doublons d' une liste cordes Two 
  • Connaissances Informatiques © http://www.ordinateur.cc