Exercice Corrige Langage C : Tri Insertion

1) Donnez le principe claire et precis du Insertion.
2) Donnez la fonctione en C  du tri Insertion.
3) Donnez l'execution de ce tri sur le tableau suivant : [89, 7, -2, 0, -1, 34, 2, 78, 80, -100].

 

Correction :

  1. Le tri par insertion est un algorithme de tri qui consiste à parcourir un tableau en plaçant chaque élément à sa place définitive, en le comparant aux éléments déjà triés. Pour chaque élément du tableau, on le compare à tous les éléments qui le précèdent, jusqu'à trouver sa place. Pour cela, on effectue des décalages successifs de tous les éléments plus grands que l'élément en cours, afin de créer une place libre pour y insérer l'élément.
  2. Voici la fonctione en C pour le tri par insertion :

    void triInsertion(int tab[], int taille) {
        int i, j, cle;
        for (i = 1; i < taille; i++) {
            cle = tab[i];
            j = i - 1;
            while (j >= 0 && tab[j] > cle) {
                tab[j + 1] = tab[j];
                j--;
            }
            tab[j + 1] = cle;
        }
    }

  3. Nb l'Element est la cle, Execution : Pour le tableau [89, 7, -2, 0, -1, 34, 2, 78, 80, -100], le tri par insertion donnerait le tableau trié suivant : [-100, -2, -1, 0, 2, 7, 34, 78, 80, 89]. Voici le détail des étapes :

    Etape 1 : on commence par prendre l'élément à l'indice 1 (ici 7). On le compare à l'élément précédent (ici 89) et on le place avant si besoin. Le tableau est donc inchangé : [89, 7, -2, 0, -1, 34, 2, 78, 80, -100].

    Etape 2 : on prend l'élément à l'indice 2 (ici -2). On le compare aux éléments précédents (89 et 7) et on le place avant si besoin. Le tableau devient : [89, 7, -2, 0, -1, 34, 2, 78, 80, -100].

    Etape 3 : on prend l'élément à l'indice 3 (ici 0). On le compare aux éléments précédents (-2, 7 et 89) et on le place avant si besoin. Le tableau devient : [89, 7, -2, 0, -1, 34, 2, 78, 80, -100].

    Etape 4 : on prend l'élément à l'indice 4 (ici -1). On le compare aux éléments précédents (-2, 0 et 7) et on le place avant si besoin. Le tableau devient : [89, -2, 0, -1, 7, 34, 2, 78, 80, -100].

    Etape 5 : on prend l'élément à l'indice 5 (ici 34). On le compare aux éléments précédents (-2, -1, 0, 7 et 89) et on le place après 89. Le tableau devient : [-2, 0, -1, 7, 34, 89, 2, 78, 80, -100].

    Etape 6 : on prend l'élément à l'indice 6 (ici 2). On le compare aux éléments précédents du tableau, en commençant par l'élément à l'indice 5 (ici 34). Comme 2 est plus petit que 34, on décale l'élément 34 d'une position vers la droite pour libérer la place à l'indice 5, et on insère l'élément 2 à l'indice 5 : [89, 7, -2, 0, -1, 34, 34, 78, 80, -100] devient [89, 7, -2, 0, -1, 2, 34, 78, 80, -100].

    Etape 7 : on prend l'élément à l'indice 7 (ici 78). On le compare aux éléments précédents du tableau, en commençant par l'élément à l'indice 6 (ici 34). Comme 78 est plus grand que 34, on insère directement l'élément 78 à l'indice 7 : [89, 7, -2, 0, -1, 2, 34, 34, 80, -100] devient [89, 7, -2, 0, -1, 2, 34, 78, 80, -100].

    Etape 8 : on prend l'élément à l'indice 8 (ici 80). On le compare aux éléments précédents du tableau, en commençant par l'élément à l'indice 7 (ici 78). Comme 80 est plus grand que 78, on insère directement l'élément 80 à l'indice 8 : [89, 7, -2, 0, -1, 2, 34, 78, 78, -100] devient [89, 7, -2, 0, -1, 2, 34, 78, 80, -100].

    Etape 9 : on prend l'élément à l'indice 9 (ici -100). On le compare aux éléments précédents du tableau, en commençant par l'élément à l'indice 8 (ici 80). Comme -100 est plus petit que 80, on décale l'élément 80 d'une position vers la droite pour libérer la place à l'indice 8, et on insère l'élément -100 à l'indice 8 : [89, 7, -2, 0, -1, 2, 34, 78, 80, 80] devient [89, 7, -2, 0, -1, 2, 34, 78, -100, 80].

    Le tableau est maintenant trié par ordre croissant : [-100, -2, -1, 0, 2, 7, 34, 78, 80, 89].

Si vous avez trouvé les exerices corriges en C de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk

  • 3 votes. Moyenne 2 sur 5.

Ajouter un commentaire

Anti-spam