C de la programmation. Le tri des lignes dans un tableau 2D

Je suis en train de trier les éléments dans les différentes lignes d'un 2D tableau. Je comprends comment faire pour trier les éléments à l'intérieur d'un 1D tableau, mais je vais avoir de sérieux problèmes à la faire trier les 2D.

Code de la 1D tableau:

for (i = 0; i < size; i++)
{
    for (j = i +1; j < size; ++j)
    {
        if (array2[i] > array2[j])
        {
            swap = array2[i];
            array2[i] = array2[j];
            array2[j] = swap;
        }
    }
}

Ce que je veux faire: 2D Tableau avant de les trier

9 2 0 1 6 3
0 9 1 2 3 8
4 2 5 4 3 6
3 6 4 3 9 3
0 2 1 2 0 4
4 1 9 4 2 7

2D tableau après le tri:

0 1 2 3 6 9
0 1 2 3 8 9
2 3 4 4 5 6
3 3 3 4 6 9
0 0 1 2 2 4
1 2 4 4 7 9

Mon code pour le 2D jusqu'à présent:

taille: l'utilisateur a défini les dimensions (dans le cas ci-dessus, il est 6)

for (i = 0; i < size; i++)
{
    for (j = 0; j < size; j++)
    {
        if(array[i][j] > array[i][j+1])
        {
            swap = array[i][j];
            array[i][j] = array[i][j+1];
            array[i][j+1] = swap;
        }
    }
}

De l'aide ou des conseils seraient appréciés. Merci à vous tous.

  • Pourriez-vous exécuter qsort sur les lignes ou vous êtes tenus d'utiliser votre propre tri?
  • Dans votre 1D exemple le i boucle est faux. Il devrait être for (i = 0; i < size-1; i++) parce que j commence à i + 1. Cette erreur est également dans votre exemple 2D. Écrire une fonction qui trie un tableau 1D passée en argument (avec la taille). Mettre à profit pour trier chaque tableau dans votre exemple 2D.
  • Il me semble tri à bulles d'affectation. Il suffit de faire une fonction de tri à bulles (votre code pour 1 tableau D) et de l'appeler pour chaque ligne du tableau 2D
  • Pour C++ et Java, cela peut aider. stackoverflow.com/questions/20931669/...
InformationsquelleAutor amstl14 | 2014-10-31