Le tri des 2 dimensions tableau en c
Je suis en train d'essayer de trier en 2 dimensions tableau.le tableau d'origine est
5 0 3
4 1 2
3 1 1
4 2 2
3 3 1
Lors du tri, il doit être comme
3 1 1
3 3 1
4 2 2
4 1 2
5 0 3
Voici le code que j'ai utilisé en essayant de mettre en œuvre de Tri à Bulles,je représente le nombre de lignes.
int x,y,z,j,temp1,temp2,temp3;
for(x=0;x<i;x++)
{
for (j=0;j<i-1;j++)
{
if(a[j][0]>a[j+1][0])
{
temp1=a[j][0];
temp2=a[j][1];
temp3=a[j][2];
a[j][0]=a[j+1][0];
a[j][1]=a[j+1][1];
a[j][2]=a[j+1][2];
a[j+1][0]=temp1;
a[j+1][1]=temp2;
a[j+1][2]=temp3;
}
}
}
il ne fait toujours pas de tri, toute aide sera grandement appréciée.
Votre support de style est curieux.
Pourquoi ne
Une bonne astuce est de ne pas utiliser la variable
Êtes-vous en essayant de trier des lignes ou des colonnes?
Si vous êtes de tri selon la première colonne, puis vous êtes tout simplement le tri d'un tableau 1d. Beaucoup d'algos pour que ..
Pourquoi ne
4 2 2
venir avant 4 1 2
?Une bonne astuce est de ne pas utiliser la variable
x
à l'extérieur de la boucle.Êtes-vous en essayant de trier des lignes ou des colonnes?
Si vous êtes de tri selon la première colonne, puis vous êtes tout simplement le tri d'un tableau 1d. Beaucoup d'algos pour que ..
OriginalL'auteur sosytee | 2012-12-30
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez de trier les lignes d'un tableau dans l'ordre lexicographique. Si vous traitez le tableau 2D comme un tableau de tableaux, alors vous êtes juste de tri le deuxième niveau de baies dans le premier niveau du tableau en ordre croissant ordre lexicographique.
Selon que le nombre de colonnes de votre tableau est fixe, vous pourriez être en mesure de le faire à l'aide de la
qsort
fonction avec un comparateur. Par exemple, si vous savez qu'il y aura toujours exactement 3 éléments de chaque colonne, vous pouvez écrire un comparateur comme celui-ci:Espérons que cette aide!
OriginalL'auteur templatetypedef
de tri de tableau 2D en c
OriginalL'auteur Yousif