Bonsoir. Si vous êtes un utilisateur Python, vous pouvez utiliser le tri, Je voulais goûter à la façon de penser J'ai essayé de résumer ٩ (ˊᗜˋ *) و
Pour le moment, organisons les séquences suivantes par ordre croissant.
x = [6,4,3,7,1,9,8]
Même si tu le dis soudainement, l'obstacle est élevé Commençons par déplacer le plus petit 1 à l'extrême gauche. Par exemple, une action qui compare deux valeurs et déplace la plus petite vers la gauche. Que diriez-vous de partir du bon bout? Prenons x [5], x [6] comme exemple.
test.py
# x[5]Est x[6]S'il est plus grand,
if x[6] < x[5]:
# x[5] , x[6]Échangez les valeurs de
x[6],x[5] = x[5],x[6]
L'image ressemble à ceci. x [5], x [6] sont surlignés en bleu. Ensuite, comparons avec x [4] VS x [5]. x [4] <x [5] tient. Il n'est donc pas nécessaire de le changer.
Si vous les comparez dans l'ordre comme celui-ci, L'image entière est la suivante. Bon, j'ai pu déplacer 1 à l'extrémité gauche! (^^)! Le but final est de trier par ordre croissant, donc d'autres types sont nécessaires.
Quoi qu'il en soit, 1 est déplacé vers l'extrémité gauche, donc 1 est fixe! Peu importe qui dit quoi, ça ne change pas (rires)! Pour le moment, j'ai changé le 1 fixe en vert. Écrivons le flux jusqu'à ce point avec l'instruction for.
test.py
#1.le début est x[6],Autrement dit, n-C'est 1.
#2.la fin est x[1] vs x[0]Alors ici, si vous mettez 0
#Puisque la substance est une affectation jusqu'à 1, x[1] vs x[0]Sera réalisé.
#3.Les chiffres sont-Il diminuera de 1
#Si vous organisez ce qui précède, rangez(len(x)-1,0,-1)Sera!
for j in range(len(x)-1,0,-1):
#Exemple) x[6] < x[5]Si oui, remplacez-le!
if x[j] < x[j-1]:
x[j],x[j-1] = x[j-1],x[j]
Je ne pense pas que ce soit un problème. Veuillez me dire si quelque chose est difficile à comprendre. m (_ _) m Ensuite. Si vous trouvez que 1 est le plus petit, comme le montre la figure ci-dessous, Mettons la valeur la plus petite suivante à côté de 1. Vous n'avez plus besoin de déplacer les données vers x [0]. Cela peut être de x [6] à x [1]. Faisons un petit code.
test.py
#↓ J'ai changé cela de 0 à 1.
for j in range(len(x)-1,1,-1):
#Exemple) x[6] < x[5]Si oui, remplacez-le!
if x[j] < x[j-1]:
x[j],x[j-1] = x[j-1],x[j]
De x [6] à x [1] comme ci-dessus Nous répéterons le travail de comparaison. Le résultat est le suivant. Vient ensuite x [6] à x [2].
test.py
#↓ J'ai changé cela de 1 à 2.
for j in range(len(x)-1,2,-1):
#Exemple) x[6] < x[5]Si oui, remplacez-le!
if x[j] < x[j-1]:
x[j],x[j-1] = x[j-1],x[j]
C'est bon, non? (Lol) C'est vrai, lors de l'imbrication des déclarations Vous pouvez exprimer ce que vous voulez faire.
test.py
for i in range (len(x)-1):
for j in range(len(x)-1,i,-1):
if x[j] < x[j-1]:
x[j],x[j-1] = x[j-1],x[j]
L'image entière est la suivante.
bubble_test.py
x = [6,4,3,7,1,9,8]
for i in range (len(x)-1):
for j in range(len(x)-1,i,-1):
if x[j] < x[j-1]:
x[j],x[j-1] = x[j-1],x[j]
print(x)
Résultat d'exécution.py
[1, 3, 4, 6, 7, 8, 9]
Le tri est amusant à comprendre, Il y a beaucoup de chiffres dans l'explication, donc j'en ai marre d'écrire des articles (rires) En fait, si la séquence n'a plus besoin d'être modifiée, Il y a peut-être une façon de penser à arrondir le genre, mais ... Le prochain est le tri rapide. ..
Recommended Posts