Partage
  • Partager sur Facebook
  • Partager sur Twitter

expliquation ordonner tableau

    14 janvier 2020 à 22:19:56

     bonjour, est-ce que quelqu'un pourrait commenter ce code car je ne comprend pas a quoi sert la variable d svp


    #include <stdio.h> #include <stdlib.h> void orderTable(int table[], int sizeTable); int main() { int firstTable[4] = {26, 8, 50, 34}; orderTable(firstTable, 4); } void orderTable(int table[], int sizeTable) { int i = 0; int j = 0; int min = 0; int d = 0; for(i = 0 ; i < sizeTable; i++) { min = table[i]; for(j = i + 1; j < sizeTable; j++) { if(table[j] < min) { min = table[j]; d = j; } } if(table[i] != min) { table[d] = table[i]; table[i] = min; } printf("%d\n", table[i]); } }

    -
    Edité par FloRian41 14 janvier 2020 à 22:35:14

    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2020 à 2:15:21

      bonsoir,

      if(table[j] < min)
      {                  
          min = table[j];
          d = j;
      }

      ça sa sert à enregistrer 2 informations si il trouve un nombre plus petit dans le tableau

      min qui est la valeur la plus petit dans le tableau et d qui est la position.

      c'est un selection sort tu peut aller voir des sort visualisation pour mieux comprendre

      <br>#include <stdio.h>
      #include <stdlib.h>
       
      void orderTable(int table[], int sizeTable);
       
      int main()
      {
              int firstTable[4] = {26, 8, 50, 34};
       
              orderTable(firstTable, 4);
      }
       
      void orderTable(int table[], int sizeTable)
      {      
              int min_val = 0;
              int min_pos = 0;
               
              for(int i = 0 ; i < sizeTable; i++)
              {
                      min_val = table[i];
                       
                      for(int j = i + 1; j < sizeTable; j++)
                      {
                              if(table[j] < min_val)
                              {                  
                                      min_val = table[j];
                                      min_pos = j;
                              }      
                      }      
                      if(table[i] != min_val)
                      {
                              table[min_pos] = table[i];
                              table[i] = min_val;
                      }      
                      printf("%d\n", table[i]);
              }      
                       
      }



      -
      Edité par Proto. 15 janvier 2020 à 2:16:04

      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2020 à 2:27:00

        Salut,
        Il semble que plusieurs personnes suivent un cours sur les techniques de tri. Où as-tu pris ton code?
        D'abord, tu n'imprime pas ton tableau trié dans le main.
        Ta boucle sur 'i' devrait aller jusqu'à 'i < sizeTable-1' car tu ne dois pas comparer le dernier avec lui-même.
        Tu gardes dans 'minimum' le minimum de ton sous-tableau, et dans 'd' la position où il se trouve.
        Tu t'en sert pour faire l'échange entre tableau[i] et la valeur à la position du minimum trouvé.
        Tu imprimes le minimum de ton sous-tableau à la fin de la fonction de tri.
        Bien que ça doit marcher, ce n'est pas une bonne pratique.
        Il est préférable de l'imprimer dans la fonction appelante (main ici) dans une boucle.
        @Proto.:
        Tu as bien illustré la différence entre la position et la valeur.
        On peut vérifier si le tri a fonctionné en comparant les valeurs successives et en vérifiant que la valeur de chaque élément précède bien celle de son successeur.

        -
        Edité par PierrotLeFou 17 janvier 2020 à 17:23:50

        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

        expliquation ordonner tableau

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown