Introduction à l'algorithme C ++
L'ensemble fini d'étapes disposées séquentiellement qui sert de guide pour résoudre tout problème. Ce mot d'algorithme c ++ est particulièrement utilisé en informatique pour définir la procédure de résolution de problèmes complexes. L'architecture de la solution peut être différente pour différents algorithmes. L'algorithme le plus efficace est celui qui fournit la solution en moins de temps et consomme moins de mémoire par rapport à d'autres solutions algorithmiques. Dans l'en-tête C ++ contient les fonctions conçues pour fonctionner sur les plages de nombres. Ces fonctions opèrent sur le nombre mais n'effectuent aucune manipulation sur les données. Il fonctionne simplement en itérant ou en pointant sur les chiffres sans toucher à ses données.
Certaines fonctions membres sous l'en-tête sont:
- algorithm :: adjacent_find (): pointe la première occurrence de deux nombres consécutifs identiques.
- algorithm :: all_of (): Retourne vrai si les nombres se trouvent sous la plage des premier et dernier éléments.
- algorithm :: binary_search (): Vérifie si la «valeur à rechercher» est présente ou non dans la séquence triée.
- algorithm :: copy (): Cette fonction aide à copier une plage d'éléments d'un emplacement vers le nouvel emplacement.
- algorithm :: count_if (): Cette fonction retourne le nombre d'occurrences d'éléments particuliers si la condition mentionnée dans «si condition» est satisfaite.
- algorithm :: equal (): Cette fonction teste si deux ensembles d'éléments sont égaux ou non. Il existe de nombreuses fonctions similaires prédéfinies en C ++ qui peuvent être poursuivies par les codeurs dans l'intérêt de leur entreprise.
Explication de l'algorithme C ++
C ++ fournit des versions de ces algorithmes dans l'espace de noms std :: gammes. Les algorithmes sont le vaste sujet qui couvre des sujets allant de la recherche, du tri aux tas min / max. Ceux-ci peuvent être classés comme:
1. Tas: Dans de tels types, nous construisons un tas pour trouver la valeur max ou min de la séquence. Cela a utilisé la structure de données des arbres pour obtenir sa sortie.
2. Recherche binaire: cet algorithme C ++ divise la séquence entière en deux parties de manière itérative jusqu'à ce qu'il trouve la valeur réelle que nous recherchons dans la séquence ciblée. Il s'agit d'un algorithme très efficace car il réduit le temps de moitié. La condition préalable pour utiliser cet algorithme C ++ est que la séquence qui lui est fournie doit être triée dans n'importe quel ordre.
3. Tri: Il existe différents types de tri qui peuvent être utilisés pour générer la séquence triée. Ce sont le tri par insertion, le tri par bulles, le tri par sélection, le tri par tas, le tri rapide, le tri par fusion. Certains de ces algorithmes fonctionnent sur le principe de «diviser pour régner» comme la fusion et le tri rapide. Celles-ci sont rapides et efficaces par rapport aux autres, bien qu'elles utilisent plus de mémoire dans leurs opérations.
4. Opérations simples sur la séquence: les algorithmes peuvent être utilisés pour effectuer des opérations simples comme remplacer, supprimer, inverser les nombres dans une séquence. Il existe de nombreuses façons d'atteindre cette sortie en utilisant différents algorithmes visant tous à atteindre la même sortie.
5. Opérations non modificatrices: Certaines opérations comme la recherche, la recherche, le comptage du nombre d'éléments dans la séquence. Ces opérations ne modifient pas les valeurs de données de l'élément mais fonctionnent autour de ces éléments.
Exemple d'algorithmes avec étapes
Voici quelques exemples de l'algorithme C ++ avec les étapes expliquées ci-dessous:
Exemple 1
Écrivez un algorithme C ++ pour écrire un programme pour ajouter deux nombres.
Algorithme
Les étapes sont données ci-dessous:
- Début
- Acceptez num1, num 2
- Somme = num1 + num2
- Afficher la somme
- Arrêtez
Exemple # 2
Écrivez un algorithme C ++ pour déterminer si un élève réussit ou échoue en fonction des notes. Les notes sont la moyenne des notes totales obtenues dans toutes les matières.
Algorithme
Les étapes sont données ci-dessous:
- Début
- Marques d'entrée1, marques2, marques3, marques4
- Note = (Marques 1 + Marques 2 + Marques 3 + Marques 4) / 4
- Si (Grade <50) alors
- Imprimer «Échec»
- Autre
- Imprimer «Pass»
- Fin si
- Arrêtez
Exemple # 3
Tri à bulles - Il s'agit de l'algorithme C ++ pour trier la séquence de nombres dans l'ordre croissant ou décroissant. Il compare les deux nombres les plus proches et place le petit avant un plus grand s'il est trié par ordre croissant. Ce processus se poursuit jusqu'à ce que nous atteignions une séquence où nous trouvons tous les nombres triés en séquence.
La complexité temporelle de cet algorithme est O (n) car les contrôles doivent parcourir tout le nombre d'éléments qui sont là dans la séquence, puis vérifier si 2 nombres adjacents sont triés. Sinon, il trie et se déplace vers les deux autres paires adjacentes de la série.
Implémentation de l'algorithme C ++ ci-dessus
Voici l'exemple de l'algorithme C ++ avec l'implémentation de code ci-dessous:
Code:
#include
void swap(int *p1, int *p2)
(
int temp = *p1;
*p1 = *p2;
*p2 = temp;
)
// This is an optimised code for the bubble sort
void bSort(int arrnumbers(), int n)
(
int i, j;
bool check;
for (i = 0; i < n-1; i++)
(
check = false;
for (j = 0; j < ni-1; j++)
(
if (arrnumbers(j) > arrnumbers(j+1))
(
swap(&arrnumbers(j), &arrnumbers(j+1));
check = true;
)
)
// We are breaking from the loop in case two elements were not swapped by inner loop.
if (check == false)
break;
)
)
//This function is to print the array sequence as final output after sorting
void print(int arrnumbers(), int sizeofarray)
(
int i;
for (i=0; i < sizeofarray; i++)
printf("%d ", arrnumbers(i));
)
// This the main program from where the execution will start
int main()
(
int arrnumbers() = (5, 6, 1, 0, 2, 9);
int n = sizeof(arrnumbers)/sizeof(arrnumbers(0));
bSort(arrnumbers, n);
printf("Sorted array: \n");
print(arrnumbers, n);
return 0;
)
Production:
Conclusion
L'algorithme C ++ est un guide de solution générique détaillé étape par étape qui est conçu en gardant le focus pour fournir la solution la plus efficace et la moins longue à tout problème fourni. Il existe de nombreux outils pour vérifier l'efficacité des algorithmes comme la notation Big Oh, les notations Omega ou Gama, ce qui est utile pour trouver l'efficacité des algorithmes. Chaque algorithme a ses propres privilèges et avantages et nous choisissons la bonne solution d'ajustement selon l'énoncé du problème. Cela joue un rôle crucial lorsque nous concevons une solution au problème car elle devient la base de la performance du produit final.
Articles recommandés
Ceci est un guide de l'algorithme C ++. Nous discutons ici de l'introduction et de l'explication détaillée de l'algorithme C ++ ainsi que des divers exemples et de l'implémentation du code. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Tableaux 3D en C ++
- Rust vs C ++
- Classe abstraite en C ++
- Surcharge et remplacement en C ++
- Déclaration d'une classe abstraite en C # avec un exemple