Algorithme de tri en langage C

mickaeli89 Messages postés 1 Statut Membre -  
bokhabrine Messages postés 34 Statut Membre -
Bonjour,

Je fais de la programmation en Visual Basic maintenant je veux me formé en langage C. Je suis actuellement confronté à un problème. Je cherche un algorithme de tri rapide pour un tableau contenant n éléments de type entier en langage C bien sûr.
Merci pour votre aide

3 réponses

  1. bokhabrine Messages postés 34 Statut Membre 4
     
    pour votre question il exist 4 Méthode de trie :
    la premier c"est le trie par Bulle:(Copier ce code)

    #include <stdio.h>
    void main()
    {
    printf("_______________________________________________________________________________\n\n");
    printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
    printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf(" |~~~~~~~~~ ~~~ ~~~ ~~~ ~~~ ~ ~~~~ ~ ~~~~~~~~~~|\n");
    printf(" |~~~~~~~~~~~ ~~~~~ ~~~~~~~ ~~~~~~~ ~~~ ~~~ ~~ ~~ ~~ ~~~~~~~~~~|\n");
    printf(" |~~~~~~~~~~~ ~~~~~ ~~~ ~~~ ~~~ ~~~~ ~~~ ~~~~~~~~~~|\n");
    printf(" |~~~~~~~~~~~ ~~~~~~~~~ ~~~~~~~ ~~~ ~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~|\n");
    printf(" |~~~~~~~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~|\n");
    printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
    printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
    printf("_______________________________________________________________________________\n");
    int i,n,inter,trier; //declaration
    printf("Entrer la dimension du tableau : ");
    scanf("%d",&n);
    int t[n];
    printf("--------------------------------\n");
    /*remplissage*/
    for(i=1;i<=n;i++)
    {
    printf("Entrer l'element T[%d] : ",i);
    scanf("%d",&t[i]);
    }
    printf("--------------------------------\n");
    /*affichage*/
    printf("le tableau est : \n\n");
    for(i=1;i<=n;i++)
    printf(" %d |",t[i]);
    printf("\n");
    printf("--------------------------------\n");
    /*tri bulle */
    do
    {
    trier=1;
    for(i=1;i<n;i++)
    {
    if(t[i]>t[i+1])
    {
    inter=t[i];
    t[i]=t[i+1];
    t[i+1]=inter;
    trier=0;
    }
    }
    }
    while(trier!=1);
    /*afficher le tri bulle*/
    printf("______________________________________________________________\n");
    printf("| |\n");
    printf("| ***** ***** ***** ***** * * * * ***** |\n");
    printf("| * * * * * * * * * * * |\n");
    printf("| * ***** * ***** * * * * ***** |\n");
    printf("| * * * * * * * * * * * |\n");
    printf("| * * * ***** ***** ***** ***** ***** ***** |\n");
    printf("|____________________________________________________________|\n");
    printf("--------------------------------\n");
    printf("le tableau trie par tri bulle : \n\n");
    for(i=1;i<=n;i++)
    printf(" %d |",t[i]);
    printf("\n");
    printf("--------------------------------\n");
    getch();
    }
    3
  2. bokhabrine Messages postés 34 Statut Membre 4
     
    La deuxième methode est Permutation:(copie ce code)
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
    printf("_______________________________________________________________________________\n");
    int i,j,k,n,inter; //declaration
    printf("Entrer la dimension du tableau : ");
    scanf("%d",&n);
    int t[n];
    printf("__________________________________\n");
    /*remplissage*/
    for(i=1;i<=n;i++)
    {
    printf("Entrer l'element T[%d] : ",i);
    scanf("%d",&t[i]);
    printf("----------------------------------\n");
    }
    printf("__________________________________\n");
    /*affichage*/
    printf("le tableau est : \n");
    printf("----------------------------------\n");
    for(i=1;i<=n;i++)
    {
    printf(" %d |",t[i]);
    }
    printf("\n");
    printf("----------------------------------\n");
    printf("__________________________________\n");
    /*tri par permutation*/
    for(i=1;i<n;i++)
    {
    if(t[i]>t[i+1])
    {
    inter=t[i+1];
    j=1;
    while(t[j]<inter)
    j++;
    for(k=i;k>=j;k--)
    t[k+1]=t[k];
    }
    t[j]=inter;
    }
    /*afficher tri par permutation*/
    printf("--------------------------------\n");
    printf("le tableau trie par permutation : \n");
    printf("--------------------------------\n");
    for(i=1;i<=n;i++)
    printf(" %d |",t[i]);
    printf("\n");
    printf("--------------------------------\n");
    getch();
    }
    1
    1. bokhabrine Messages postés 34 Statut Membre 4
       
      Si tu veux l'autre méthode je suis à prés pour les réaliser
      0