Tas de tas C ++

Tas de tas C ++

Comme nous le savons, la langue C ++ a beaucoup d'algorithmes de tri pour tri des structures de type tableau. L'une de ces techniques de tri est le tri de tas. Il est très populaire parmi les développeurs C ++ car il est considéré comme le plus efficace en ce qui concerne son travail. Il est un peu différent des autres techniques de tri car elle nécessite les informations des arbres de structure de données ainsi que le concept de tableaux. Si vous avez entendu et appris les arbres binaires, alors apprendre le tri de tas ne sera plus un problème pour vous.

Dans le type de tas, deux types de tas peuvent être générés, je.e., min-heap et max-heap. Le max-heap trie l'arbre binaire dans l'ordre descendant, tandis que le mine-heap trie l'arbre binaire dans l'ordre croissant. En d'autres termes, le tas sera «max» lorsque le nœud parent d'un enfant est plus grande et vice versa. Nous avons donc décidé d'écrire cet article pour tous ces utilisateurs naïfs de C ++ qui n'ont aucune connaissance préalable sur le tri, en particulier le tri de tas.

Commençons notre tutoriel d'aujourd'hui avec l'Ubuntu 20.04 Connectez-vous pour avoir accès au système Linux. Après la connexion, utilisez le raccourci «Ctrl + Alt + T» ou la zone d'activité pour ouvrir sa demande de console nommée «Terminal."Nous devons utiliser la console pour fabriquer un fichier pour implémentation. La commande de la création est une simple instruction «toucher» en un mot suivant le nouveau nom pour un fichier à créer. Nous avons nommé notre fichier C ++ comme «tas.CC ". Après la création de fichiers, vous devez commencer à implémenter les codes. Pour cela, vous devez l'ouvrir d'abord via certains éditeurs Linux. Il y a trois éditeurs intégrés de Linux qui peuvent être utilisés à cet effet, i.e., nano, vim et texte. Nous utilisons l'éditeur «GNU Nano».

Exemple # 01:

Nous expliquerons un programme simple et assez clair pour le tri des tas afin que nos utilisateurs puissent bien comprendre et bien l'apprendre. Utilisez l'espace de noms et la bibliothèque C ++ pour la sortie d'entrée au début de ce code. La fonction tasify () sera appelée par une fonction «tri ()» pour ses deux boucles. La première boucle «pour» appellera le tableau de passes «A», n = 6, et root = 2,1,0 (concernant chaque itération) pour construire un tas réduit.

En utilisant la valeur de la racine à chaque fois, nous obtiendrons la «plus grande» valeur variable est 2,1,0. Ensuite, nous calculerons les nœuds «L» gauche et «R» à droite de l'arbre en utilisant la valeur «racine». Si le nœud gauche est supérieur à la «racine», le premier «If» attribuera «l» au plus grand. Si le nœud droit est supérieur à la racine, le deuxième «if» attribue «R» au plus grand. Si le «plus grand» n'est pas égal à la valeur «racine», le troisième «if» échangera la «plus grande» valeur variable avec «root» et appellera la fonction tasify () à l'intérieur, i.e., appel récursif. Le processus entier expliqué ci-dessus sera également utilisé pour le tas max lorsque la deuxième boucle «pour» sera itérée dans la fonction de tri.

La fonction «Sort ()» à faire afficher sera appelé pour trier les valeurs du tableau «A» dans l'ordre croissant. La première boucle «pour» est là; Construisez un tas, ou vous pouvez dire un tableau de réorganisation. Pour cela, la valeur de «i» sera calculée par «n / 2-1» et décrémentée à chaque fois après l'appel de fonction tasify (). Si vous avez un total de 6 valeurs, cela deviendra 2. Un total de 3 itérations seront effectuées, et la fonction Heapify sera appelée 3 fois. La prochaine boucle «pour» est là pour déplacer la racine actuelle à la fin d'un tableau et appeler la fonction Heapify 6 fois. La fonction d'échange apportera la valeur à l'indice d'itération actuel «A [i]» d'un tableau avec la première valeur d'index «A [0]» d'un tableau. La fonction tas () sera appelée pour générer le tas maximum sur le tas réduit déjà généré, i.e., «2,1,0» au début «pour» boucle.

Voici notre fonction «Affichage ()» pour ce programme qui a pris un tableau et le nombre d'éléments du code de pilote principal (). La fonction «Display ()» sera appelée deux fois, je.e., Avant de trier pour afficher le tableau aléatoire et après le tri pour afficher le tableau trié. Il est démarré avec la boucle «pour» qui utilisera la variable «n» pour le dernier numéro d'itération et commence à partir de l'index 0 d'un tableau. L'objet C ++ «cout» est utilisé pour afficher chaque valeur du tableau «A» sur chaque itération tandis que la boucle continue. Après tout, les valeurs du tableau «A» seront affichées sur la coque les unes après les autres, séparées les unes des autres par un espace. Enfin, la pause de ligne sera insérée en utilisant à nouveau l'objet «cout».

Ce programme commencera à partir de la fonction principale () car C ++ a toujours tendance à en exécuter. Au tout début de notre fonction principale (), le tableau entier «A» a été initialisé avec un total de 6 valeurs. Toutes les valeurs sont stockées dans un ordre aléatoire dans le tableau A. Nous avons pris la taille du tableau «A» et la taille de la première valeur d'index «0» du tableau A pour calculer le nombre total d'éléments dans un tableau. Cette valeur calculée sera stockée dans une nouvelle variable «n» de type entier. La sortie standard C ++ peut être affichée à l'aide d'un objet «cout."

Ainsi, nous utilisons le même objet «cout» pour afficher le message simple «tableau d'origine» sur le shell pour faire savoir à nos utilisateurs que le tableau d'origine non trié sera affiché. Maintenant, nous avons une fonction «d'affichage» définie par l'utilisateur dans ce programme qui sera appelé ici pour afficher le tableau d'origine «A» sur le shell. Nous l'avons passé notre tableau d'origine et la variable «n» dans les paramètres. Après avoir affiché le tableau d'origine, nous utilisons la fonction tri () ici pour organiser et réorganiser notre tableau d'origine dans l'ordre croissant en utilisant le tri de tas.

Le tableau d'origine et la variable «n» y sont transmis dans les paramètres. La prochaine instruction «cout» est utilisée pour afficher le message «Trired Array» après l'utilisation d'une fonction «tri» pour trier le tableau «A."L'appel de fonction à la fonction" Affichage "est à nouveau utilisé. C'est pour afficher le tableau trié sur la coque.

Une fois le programme terminé, nous devons le rendre sans erreur en utilisant le compilateur «G ++» sur la console. Le nom du fichier sera utilisé avec l'instruction du compilateur «G ++». Le code sera spécifié sans erreur s'il ne lance aucune sortie. Après cela, le «./un.La commande out ”peut être cassée pour exécuter le fichier de code sans erreur. Le tableau d'origine et le tableau trié ont été affichés.

Conclusion:

Il s'agit du fonctionnement d'un type de tas et d'un moyen d'utiliser le tri de tas dans le code du programme C ++ pour effectuer le tri. Nous avons élaboré le concept de Max Heap et Min Heap pour le tri du tas dans cet article et avons également discuté de l'utilisation des arbres à cet effet. Nous avons expliqué le tri du tas de la manière la plus simple possible pour nos nouveaux utilisateurs C ++ qui utilisent le système Linux.