Bonjour ,
comment réaliser le tri dans un tableau a 2 dimensions?
je n' ai pas tenté mais je me suis posé la question
Merci
Bonjour ,
comment réaliser le tri dans un tableau a 2 dimensions?
je n' ai pas tenté mais je me suis posé la question
Merci
Bah c'est le moment de penser à quel algo on pourrait utiliser pour voir ce que ça donneEnvoyé par racoboss
@+
salut ,
j ai une idée , on pourrait le "transformer "en un tableau a une dimension , faire le tri et "recréer" le tableau à 2 dimensions??
Pour l ' algo sans passer par cette méthode , je suis entrain d ' essayer de le faire ,mais je ne vois vraiment pas , ca s annonce compliqué non???
je pensais a trier les lignes de la matrices , puis les colonnes ..
pourquoi me suis je posé cette question.
Juste une chose il faut commencer par savoir ce qu'on aura a trier( string ,int, ....) et quel algo de tri utiliser .....![]()
salut ,
je voudrais trier des entiers , mais comment par exemple passer du tableau a 2 dimensions à un tableau à une dimension , j essaie de voir en positionnant une variable qui agira comme un compteur.
Jusqu' a maintenant , je n ' ai vu que le tri dans un tableau à une dimension.
merci.
Une methode peu orthodoxe serait de copier chaque ligne de la matrice (tableau a 2 dimensions ) dans une tableau temporaire comme tu le dit et ,
ensuite trier le tableau temporaire ----> trier la ligne de la matrice copiée et apres passer à une autre ligne.![]()
salut ,
je suis entrain d essayer de repasser du tableau unidimensionnel au tableau à 2 dimensions , oui j ai assez galéré dans le sens inverse , la je vais encore plus galéré.
question 2 - comment realiser le tri a bulle dans ce tableau à 2 dimensions??
Merci
bah si on suit ce que j'avais dit le tri se passe dans le tableau a une dimension et c'est apres qu'on change dans la matrice
resalut,
est on obligé de passer par cette méthode (deja faut que j y arrive ), ne pourrais t on pas faire ce tri comme dans un tableau à une dimension??
merci
On peut tout faire.
Passer à un tableau à 1 dimension permet de se ramener à un cas connu et a priori d'avoir moins de choses à coder.
Encore faut-il savoir dans quelle direction tu veux trier ton tableau 2D (par ligne ou par colonne?).
Mettre le tableau dans une collection et utiliser un comparateur.
pour passer d'un tableau à 2 dimensions à un tableau deux dimensions, utilisez lar forumle: tab[i][j] >> tab2[i*n+j] avec n la longueur sur le premier indice (i). Mais il faut tenir compte de la sémantique du tableau pour proposer la meilleure solution, même si il semble que la meilleure sera de transformer en collection et utiliser les comparateurs.
Bonjour
Quelle est la difference entre un tableau à 2 dimensions et un tableau deux dimensionsEnvoyé par leonardoo
merci
@+
Qu'est ce que tu veux dire par tri dans un tableau à 2 dimensions ? Ca ne veut trop rien dire.
Trier
Ca veut dire quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 1 2 4 3 7 8 4 7 9
Ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 1 4 7 2 4 8 3 7 9
Ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 1 2 3 4 4 7 7 8 9
Ou autres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 4 4 3 7 1 2 7 8 9
+1
explique nous d'abord comment tu veux réaliser le tri... si le but est d'avoir un tri séparé des colonnes (ou des lignes) par exemple , passé en tableau 1 dimension est totalement inutile...
je m'explique : imaginons que tu ai :
et que tu veuille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1 3 8 6 4 9 2 4
passé en tableau une dimension est inutile...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1 3 2 4 4 6 8 9
Si on suppose qu'il s'agit d'un tri multicolonne, j'ai un ptit exemple à proposer, mais ça nécessite Java 5.
Ca utilise la méthode Arrays.sort(T[], Comparator<T>) qui permet de trier des tableaux quelconques, dont les tableaux de tableaux... Dans l'exemple le Comparator est à adapter au problème bien sûr.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Comparator<int[]> c = new Comparator<int[]>() { public int compare(int[] o1, int[] o2) { // A adapter au problème for (int i = 0; i < Math.min(o1.length, o2.length); i++) { if (o1[i] < o2[i]) { return -1; } else if (o1[i] > o2[i]) { return 1; } } return 0; } }; int[][] tableau = new int[2][5]; Arrays.sort(tableau, c);
Partager