Tri Par Insertion Javascript

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Un tri par insertion Java évalue chaque élément d’une liste. Si un élément est plus petit que le précédent, le tri permute les éléments. Sinon, les éléments restent au même endroit et les deux éléments suivants sont comparés dans la liste.

Les ordinateurs sont bons pour trier les listes d’éléments. √Ä l’aide de boucles, vous pouvez rechercher parmi tous les éléments d’une liste et modifier leur ordre jusqu’à ce qu’ils apparaissent d’une certaine manière.

En programmation, il existe des méthodes standard pour trier les listes. Nous appelons ces algorithmes de tri. Les algorithmes de tri lisent tous les éléments d’une liste et les trient à l’aide d’un ensemble particulier d’instructions. L’un des algorithmes de tri les plus courants que vous rencontrerez est le tri par insertion.

Dans ce guide, nous verrons comment implémenter un algorithme de tri par insertion Java. Nous allons parcourir un exemple en cours de route afin que vous puissiez apprendre comment fonctionne la logique derrière ce type.

Commençons !

Qu’est-ce qu’un tri par insertion Java ?

Un tri par insertion Java fonctionne de la même manière que le tri des cartes dans votre main dans un jeu de cartes . Les tris par insertion vérifient chaque élément dans une liste et les échangent avec un élément à sa gauche. L’échange d’un article dépend du fait que l’article est supérieur ou inférieur aux articles précédents.

Imaginez un instant que vous jouez à un jeu de cartes - whist, rami, peu importe. Lorsque vous commandez vos cartes, que faites-vous ?

Vous commencerez par la gauche et vérifierez si la deuxième carte est triée. Si cette carte est plus grande que la précédente, elle doit rester dans la même position. Sinon, il devrait remonter d’une position dans la liste.

Vous aurez réussi tous les carte dans votre main et faites-le jusqu’à ce que chaque carte apparaisse dans le bon ordre.

Quand devez-vous utiliser un tri par entrée ?

Il existe plusieurs tris par insertion utilisés lorsqu’il n’y en a que quelques-uns éléments restants à trier.

Il existe des algorithmes plus efficaces que vous pouvez utiliser pour trier de grandes listes de données, comme un tri par fusion. C’est pourquoi vous ne devez pas toujours utiliser un tri par insertion par défaut. Cela dit, les tris par insertion sont plus efficaces que les tris à bulles et par sélection pour trier les éléments d’une liste.

Un tri par insertion est un algorithme de tri simple, ce qui signifie qu’il est utile pour les débutants à apprendre.

Procédure de tri par insertion

La visualisation d’un jeu de cartes n’est pas la plus intuitive au monde. Pour commencer, regardons un exemple de programmation. Considérez la liste suivante:

8 6 3 9

Dans cette liste, nous supposons que le premier élément est trié.

Notre l’étape suivante consiste à comparer le deuxième élément de notre liste avec le premier. Si le premier élément est supérieur au deuxième élément, cet élément est placé devant le premier élément.

Dans ce cas, 6 est supérieur à 8. Cela signifie que 6 reculera d’une position dans notre liste et 8 avancera d’une position:

< / tbody>
6 8 3 9

Maintenant, nous devons comparer le troisième élément avec les éléments à sa gauche: 3 est-il supérieur à 8 ? Non, donc 8 déplacez la position vers la droite:

6 3 < / td> 8 9

3 est-il supérieur à 6 ? Non, passons donc au chiffre 6:

3 6 8 9

Maintenant, nous devons comparer si le quatrième élément de notre liste - le dernier élément - est supérieur à tout autre élément de notre liste. Dans ce cas, 9 est supérieur à tous les éléments qui le précèdent: 8, 6 et 3.

Voici l’algorithme que nous avons utilisé pour trier notre liste:

Nous avons maintenant un tableau trié. Les tris d’insertion sont triés sur un élément à la fois. Voyons comment implémenter cet algorithme de tri en Java.

Comment effectuer un tri par insertion en Java

La plus élevée des deux valeurs comparées est insérée d’une position vers la droite chaque fois que la fonction de tri est exécutée.

C’est bien de parler de cela en termes théoriques, mais comment cela s’implémente-t-il en Java ? C’est une bonne question. √âcrivons un cours qui va trier par insertion sur une liste de notes d’élèves.

Préparer la bibliothèque Array

Commençons par importer la bibliothèque Arrays dans notre programme Java. Nous utiliserons cette bibliothèque pour imprimer notre liste sur la console une fois que nous l’aurons triée:

Déclarer une méthode de tri

On va commencer par déclarer une méthode qui parcourt notre liste et trie nos données par ordre croissant :

Commençons par déterminer le nombre d’éléments dans notre tableau d’entrée. Cela nous permet de créer une boucle qui parcourt chaque élément de notre liste. Nous initialisons une boucle for qui boucle jusqu’à ce que nous triions notre liste.

Dans notre boucle for, nous avons déclaré deux variables: key et last.

La "clé" La Variable Java garde la trace de l’article que nous commandons actuellement. La variable "last" garde une trace du nombre d’éléments à trier à gauche de l’élément.

Notre programme comparera la valeur de "key" avec chaque élément à sa gauche jusqu’à ce que nous trouvions un élément plus petit. Cela se produit dans notre boucle Java "while" .

Définir une fonction principale

Lorsque nous exécutons ceci code, rien ne se passe. C’est parce que nous n’avons pas encore défini notre fonction principale. Nous définissons une fonction principale qui définit un tableau int (un tableau de nombres). Cette fonction principale utilise la fonction insertSort () que nous avons déclarée pour trier ces nombres. Collez ce code après avoir déclaré votre entréeTrier la méthode Java :

Dans notre méthode principale, nous avons déclaré une liste de nombres que nous voulons trier. Nous avons instancié notre méthode InsertionSort () appelée sortNumbers . Nous utilisons cette méthode pour trier notre liste de nombres par ordre croissant. Cette méthode modifie les valeurs au sein de notre vecteur " nombres " ; nous n’avons pas déclaré de tableau séparé pour stocker ses valeurs.

Ensuite, nous avons utilisé la méthode Arrays.toString() pour convertir notre tableau de nombres en une chaaîne.

Revue de complexité

Le tri par insertion a une complexité moyenne de cas de O (n ^ 2). Cela se produit lorsqu’aucun élément n’est trié.

La complexité dans le meilleur des cas se produit si un tableau est trié. Cela produira une complexité temporelle de O (n). C’est parce que la boucle interne dans un tri par insertion ne s’exécutera pas du tout dans ce cas.

Dans le pire des cas, un tri par insertion est effectué à O ‚Äã‚Äã(n ^ 2). Cela se produit si un tableau est dans l’ordre croissant ou décroissant et que vous souhaitez le trier à l’envers (c’est-à-dire de l’ordre croissant à l’ordre décroissant). nto de chaque élément avec tous les autres éléments.

Conclusion

Les tris par insertion sont un moyen efficace de trier les données. orts compare les valeurs à partir de la seconde dans une liste. Si cette valeur est supérieure à celle à sa gauche, notre liste ne change pas. Sinon, la valeur est déplacée jusqu’à ce que l’élément à sa gauche soit inférieur.

Vous êtes maintenant prêt à commencer à écrire votre propre algorithme de tri par insertion en Java ! Si vous recherchez plus de ressources d’apprentissage Java, consultez notre Guide d’apprentissage Java .