Ceci est [Partie 46 de la série de didacticiels Dart], si vous le trouvez utile, veuillez prêter attention à la colonne.
Si vous n'êtes pas sûr du tri par insertion, vous pouvez lire ce blog Qu'est -ce que le tri par insertion ?
Si vous ne voulez pas le voir, je dirai simplement
Le tri par insertion consiste à insérer les nombres d'un tableau non ordonné dans un tableau ordonné un par un.
Tout d'abord, l'implémentation du tri par insertion
Parlons de la façon d'implémenter l'algorithme de tri par insertion dans Dart. Remarque : dans le tableau non ordonné par défaut, l'élément avec l'indice 0 est déjà ordonné.
List<int> l = [8, 4, 2, 9, 7, 14, 0, 21, 6, 35, 1, 99];
void insert() {
for (var i = 1; i < l.length; i++) {
int insertVal = l[i];
int insertIndex = i - 1;
while (insertIndex >= 0 && insertVal < l[insertIndex]) {
l[insertIndex + 1] = l[insertIndex];
insertIndex--;
}
l[insertIndex + 1] = insertVal;
}
print("排序后的数组 l :$l");
}
La console imprime ce qui suit
2. Idées de tri
- Étape 1 : Notez le numéro qui sera inséré
insertVal
. - Étape 2 : Notez l'indice du nombre avant le nombre à insérer
insertIndex
,insertVal
afinl[insertIndex]
de comparer avec . - Étape 3: Lorsque
insertVal
est inférieur àl[insertIndex]
(préparez-vous pour l'ordre croissant, sinon c'est l'ordre décroissant), déplacez le nombre supérieur au nombre inséré d'un bit vers l'arrière et, en mêmeinsertIndex
temps, . - Étape 4 : Enfin,
insertVal
attribuez à la position appropriée.
Votre problème a-t-il été résolu? Bienvenue à laisser un message dans la zone de commentaire.
Donnez une rose à quelqu'un et il y a un parfum persistant dans votre main. Si vous pensez que l'article est bon, j'espère que vous pourrez donner un lien à trois en un clic, merci.
La technologie s'accumule petit à petit, et Dieu ne peut pas être atteint en un jour. Rester immobile, c'est reculer, alors faites un peu de progrès chaque jour.
remarques finales
Enfin, une devise est attachée : "Je suis avide d'apprendre, mais humble comme un imbécile", et j'espère m'encourager mutuellement.