Échanger deux variables
Dans ce tutoriel, nous allons extraire les données contenues dans un tableau d'une page web.
Échanger deux variables, voilà un exercice algorithmique très populaire.
Soient a et b deux variables de type entier
a = 4
b = 3
Le problème consiste à échanger les valeurs des variables a et b c'est-à-dire avoir après échange a = 3 et b = 4.
Il y a deux manières de résoudre ce problème.
1. Première méthode
La première méthode consiste à utiliser une troisième variable (variable tampon) pour stocker temporairement une valeur pendant qu'elle est écrasée. Voici l'implémentation :
c = a /* Stokage de la valeur de a */
a = b
b = c
2. Seconde méthode
La seconde méthode consiste à sommer les deux variables puis à soustraire au fur
a = a + b
b = a - b
a = a - b
Ces deux méthodes s'implémentent toutes deux en trois étapes mais la seconde est la plus optimisée et la plus ingénieuse d'ailleurs. En effet elle ne fait pas appel à de la ressource supplémentaire.
L'échange de deux variables est généralement utilisé dans les algorithmes de tri.
Implémentation en C
#include <stdio.h>
#include <stdlib.h>
void echanger(int* a, int* b)
{
int c; //variable tampon
c = *a;
*a = *b;
*b = c;
}
int main()
{
int x=12, y=5;
printf("Avant: x = %d, y = %d\n", x, y);
echanger(&x, &y);
printf("Apres: x = %d, y = %d\n", x, y);
return 0;
}
.