Aller au contenu

É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;
}

Partagez sur les réseaux sociaux

Commentaires