Tri insertion en C ++

Tri insertion en C ++
Le tri de l'insertion est un algorithme d'organisation de base ou une approche qui fonctionne de la même manière que vous pouvez organiser des ponts de cartes dans vos paumes. L'assortiment est séparé en deux parties: l'une qui est ordonnée et l'autre qui n'est pas. Les articles du segment non ordonné sont désignés et situés dans le fragment organisé dans le bon ordre. Le tri d'insertion comparera les deux valeurs consécutives les unes avec les autres et cette méthodologie est plus efficace que le tri de bulles et de sélection, mais pas aussi rapide que le tri ou la fusion rapide.

Commençons par le lancement de l'application Shell dans Ubuntu 20.04 Système avec Ctrl + Alt + T. Après l'avoir lancé, créez un fichier C ++ dans votre dossier à domicile via l'instruction «Touch» indiquée dans l'image. Nommez le fichier C ++ avec l'extension «CC». Après cela, ouvrez votre fichier dans n'importe quel éditeur intégré d'Ubuntu 20.04 Système (I.e. GNU nano, texte ou vim).

Exemple 1:

Commençons par le tout premier exemple pour utiliser le tri d'insertion pour trier un tableau aléatoire non ordonné dans l'ordre des nombres ascendants. Nous avons commencé notre code avec l'inclusion des «bits / stdc++.Bibliothèque standard H ”. Ensuite, nous avons ajouté l'espace standard de «l'espace de noms» de C ++ avec le mot court «Utilisation» et «STD». La fonction «Sort ()» utilise le tableau «A» et sa taille «n» pour trier le tableau aléatoire non ordonné en un tri via la technique de tri d'insertion.

Nous avons déclaré une «clé» variable entière et la boucle «pour» est en cours. Jusqu'à ce que la boucle interagisse jusqu'à la taille «n» d'un tableau, la valeur à chaque index «i» du tableau «a» est enregistrée à la variable «clé».

Initialiser une autre variable «J» avec la valeur précédente de l'index «i» i.e. "J = I -1". Voici la boucle while. Alors que l'index précédent «J» est supérieur ou égal à 0 et que la valeur à l'index «J» est supérieure à la valeur à la variable «clé» i.e. La valeur à l'index «i», elle continuera d'ajouter la valeur à l'index «J» à l'index «J + 1» qui est en fait «i». Parallèlement à cela, l'index «J» diminuera de 1 i.e. Le précédent de "J" deviendra "J".

Après la fin de la boucle WHOR, la valeur «J + 1» est attribuée avec la valeur «clé». je.e. à "I". Pour le rendre plus clair, disons si i = 1 alors j = 0. Donc, si la valeur à «J» est supérieure à la «clé», nous échangerons la valeur à «J» avec la prochaine valeur consécutive.

Cette fonction est exécutée par la fonction principale () en passant le tableau et sa taille spécifique dans les paramètres. La boucle «pour» est utilisée pour itérer les valeurs du tableau de l'index 0 à la dernière index «n-1» d'un tableau. À chaque itération, chaque valeur est affichée sur le shell en utilisant l'index spécifique d'un tableau pour une itération particulière via l'instruction COUT. La dernière instruction COUT est utilisée pour mettre la ligne fin après l'affichage du tableau entier «A» sur la coquille.

L'exécution de ce code commence à partir de la méthode principale (). Nous avons initialisé un tableau «A» de type entier avec quelques valeurs de nombre aléatoire. Ce tableau n'est pas encore trié. Nous obtenons la taille d'un tableau en utilisant la variable «n» et appliquant la fonction de taille () sur le tableau «A».

L'objet cout est utilisé pour informer l'utilisateur que le programme affichera le tableau non trié d'origine sur votre écran. La fonction «Show» est appelée en passant le tableau «A» et la taille «n» pour afficher le tableau ordonné au hasard. La prochaine instruction COUT est utilisée pour vous faire savoir que le programme va afficher le tableau trié sur le shell grâce à l'utilisation du tri d'insertion.

Le «tri ()» est appelé en passant un tableau ordonné aléatoire «A» et sa taille. La fonction tri () trie le tableau et la fonction show () affiche le tableau trié mis à jour «A» sur l'écran de la coque de notre terminal Linux. Le code global est maintenant terminé ici.

Après la compilation de notre code, nous n'avons aucune erreur. Nous avons exécuté notre code via le «./un.instruction out »ci-dessous. Le tableau non trié a été affiché, puis le tableau trié est dans une commande ascendante via le tri d'insertion.

Exemple 2:

Jetons un coup d'œil à un autre exemple de tri d'insertion. Dans cet exemple, nous n'utiliserons aucune fonction de tri définie par l'utilisateur pour effectuer un tri d'insertion. Nous n'utiliserons que la fonction principale () dans le code pour l'exécuter. Donc, nous ouvrons le même fichier de code et mettons à jour le code. Ajouter la bibliothèque de flux d'entrée et de sortie standard C ++ avec le mot-clé «#include». «L'espace de noms standard» est déclaré en utilisant le mot-clé «utilisation».

Nous commençons la fonction principale () du type entier et initialisons un tableau entier «A» de taille 10 avec les 10 valeurs numériques. Ces éléments d'un tableau «A» sont placés au hasard quelle que soit l'ordre. L'instruction COUT est utilisée pour indiquer que nous allons afficher la liste avant de la tri. Après cela, nous utilisons la boucle «pour» pour itérer les valeurs du tableau d'origine non trié «A» jusqu'à son dernier élément. Sur chaque itération de la boucle «pour», chaque même valeur d'index du tableau «A» est affichée sur la coque via l'instruction «cout». Après cette boucle «pour», nous utilisons une autre boucle «pour» pour effectuer un tri «insertion».

Cette boucle «pour» est initialisée de «k = 0» à «k = 10». Alors que la boucle s'itère de 0 à 10e index du tableau «A», nous continuons à attribuer la valeur à l'index «K» du tableau «A» à la nouvelle variable entière «Temp». De plus, nous découvrons le prédécesseur «J» de la valeur «K» en utilisant le «K-1». La boucle «while» est là pour vérifier si l'indice de prédécesseur «J» est supérieur à 0 et que la valeur à la variable «Temp» est inférieure ou égale à la valeur du prédécesseur «J» du tableau «A».

Si cette condition satisfait, la valeur du prédécesseur est attribuée au prochain prédécesseur «J» I.e. "J + 1". Parallèlement à cela, nous continuons à diminuer l'indice du prédécesseur i.e. se déplaçant dans la direction arrière. Après la fin de la boucle While, nous attribuons la valeur de «Temp» au prochain prédécesseur «J». Après la fin de la boucle «pour», nous affichons le tableau trié «A». Pour cela, nous utilisons la déclaration «cout» dans la boucle «pour». Le code est terminé ici et est prêt à l'emploi.

Nous avons compilé le fichier de code «Insertion.CC "avec succès et exécuté le fichier avec le"./un.instruction out. Le tableau aléatoire non trié s'affiche en premier. Après cela, le tableau trié via le tri d'insertion est affiché à la fin selon la sortie ci-dessous.

Conclusion

Cet article concerne l'utilisation du tri d'insertion pour trier un tableau aléatoire dans un programme C ++. Nous avons discuté de la façon conventionnelle de trier le tableau avec le tri d'insertion dans les premiers exemples i.e. Utilisation en nature, affichage et fonction du pilote principal (). Après cela, nous avons utilisé la nouvelle méthode pour effectuer le tri d'insertion dans un seul pilote main ().