Algorithme d'alignement par méthode d'insertion en Python

étude

Parce que le livre que je lisais est venu au chapitre sur les algorithmes. Pratiquer Insérer un tri est. Comme ça Trier le contenu du tableau dans l'ordre ABC Trier.

insertion_sort.py


# coding: UTF-8
#Le japonais ne peut pas être inclus dans le code sans ↑
List = ['Fred', 'Alex', 'Diana', 'Byron', 'Carol' ]

#Méthode d'insertion
N = 2 #La méthode d'insertion commence par toucher le deuxième élément

while len(List) >= N: #Tant que la valeur de N ne dépasse pas la longueur de la liste
    pip = List[N-1] #Faites pivoter le Nième élément, déplacez le contenu vers un emplacement temporaire,
    List[N-1] = 'BLANK' #Faites-en un espace (il n'est pas nécessaire de spécifier l'écart)
    
    sukima = N-1 #Position du premier écart
    while sukima != 0: #Tant que "il y a un nom au-dessus de l'écart (= l'écart actuel est le deuxième élément et les suivants)"
        if List[sukima-1] > pip: #Si "juste au-dessus de l'écart est plus grand que le pivot"
            List[sukima] = List[sukima-1] #Lâchez-le dans le vide
            sukima = sukima-1 #Le sommet est une nouvelle lacune.
        else: break

    List[sukima] = pip #Remettez le pivot dans l'espace.
    N = N + 1 #Incrémenter et répéter le traitement

#production
for x in List:
    print x 

Au milieu, comparez la taille du pivot et la chaîne de caractères de l'élément. Je ne suis pas sûr de ce que signifie «la taille de la chaîne de caractères» ici. Mais min (List) renvoie Arex et max (List) renvoie Fred, donc Je suppose que le plus tard dans l'ordre ABC, plus la chaîne de caractères est grande.

Résultat d'exécution

Résultat C'est amusant si ça marche.

Les références

Introduction à l'informatique p218-p222

Recommended Posts

Algorithme d'alignement par méthode d'insertion en Python
Algorithme génétique en python
Méthode Simplex (méthode unique) en Python
Algorithme en Python (méthode Bellman-Ford, Bellman-Ford)
Méthode privée en python
Algorithme en Python (Dijkstra)
Implémenté en Python PRML Chapitre 4 Classification par algorithme Perceptron
Algorithme en Python (jugement premier)
Reproduire la méthode de division mutuelle euclidienne en Python
Algorithme en Python (dichotomie)
Implémenter l'algorithme de Dijkstra en python
Suppression des substitutions de méthode en Python
Trier par date en python
Algorithme en Python (recherche de priorité de largeur, bfs)
Algorithme de tri et implémentation en Python
Ecrire des algorithmes A * (A-star) en Python
Développons un algorithme d'investissement avec Python 2
Algorithme en Python (recherche de priorité en profondeur, dfs)
Implémentation de la méthode de propagation d'étiquettes en Python
Implémentation d'un algorithme simple en Python 2
Algorithme (arborescence de segments) en Python (s'entraîner)
Algorithme Python
Méthode pour créer un environnement Python dans Xcode 6
Simulation au microscope électronique en Python: méthode multi-coupes (1)
Simulation au microscope électronique en Python: méthode multi-coupes (2)
Lisez le fichier ligne par ligne avec Python
Automatisez les tâches en manipulant des fichiers en Python
Lisez le fichier ligne par ligne avec Python
Simulation commune par moto dans le test unitaire de Python
Reconnaissance de scène par quantité de fonctionnalités GIST en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Apprenez le modèle de conception "Méthode de modèle" en Python
Époque en Python
Discord en Python
Pour remplacer dynamiquement la méthode suivante en python
Apprenez le modèle de conception "Méthode d'usine" en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Réflexion en Python
Constante en Python
nCr en Python.