Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1807 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Recherche algo de tri de matrice

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche algo de tri de matrice

n°716330
EpoK
Let's burn
Posté le 05-05-2004 à 15:28:14  profilanswer
 

Bonjour
 
j'ai une matrice (représentée par un double[][])
et je doit la trier pour qu'au final les plus grandes valeurs apparaisent en diagonale en partant de la case 0,0.
 
je cherche à savoir si vous connaitriez un bon algo qui fait ca.
 
pour l'instant j'ai tenté un truc des colonnes suivit d'un tri des lignes mais je m'y pert un peu avec tout les cas possible (sachant que ma matrice n'est pas forcement carré).
 
Si vous trouvez ça facile merci de ne pas se moquer j'ai du mal  :sweat:  
 
je poste pas le code que j'ai déja fait car il complettement illisible, les indices parte dans tout les sens et c'est pas propre du tout.
 
je continue à chercher mais je voulai savoir si c'était un probleme connu et si des algos fiables existent.
 
Merci  :jap:  
 

mood
Publicité
Posté le 05-05-2004 à 15:28:14  profilanswer
 

n°716387
Ace17
Posté le 05-05-2004 à 15:57:48  profilanswer
 

Tu as de le droit de faire quelles opérations sur ta matrice? Permutation des lignes et colonnes? Ou bien alors tu peux carrément échanger des cases? Détaille un peu plus car c'est pas clair pour l'instant


Message édité par Ace17 le 05-05-2004 à 15:58:39
n°716389
Taz
bisounours-codeur
Posté le 05-05-2004 à 16:00:02  profilanswer
 

y a pas de tri ... tu parcours chaque ligne et tu permuttes l'élément le plus grand avec l'élément diagonal

n°716399
Ace17
Posté le 05-05-2004 à 16:04:43  profilanswer
 

Et si les plus grandes valeurs de la matrice sont toutes sur la 1ere ligne?


Message édité par Ace17 le 05-05-2004 à 16:05:58
n°716406
Taz
bisounours-codeur
Posté le 05-05-2004 à 16:06:57  profilanswer
 

Ace17 a écrit :

Et si les plus grands valeurs de la matrice sont toutes sur la 1ere ligne?

ah ok, j'avais pas compris ... ben alors je pense pas qu'il y ait grand chose à faire ... son tri j'y comprends rien ... y a qu'a trouver les plus grand éléments et remplir la diagonale ave ... sinon faut qu'il nous explique son tri ou les éléments seraient pas dans l'ordre ...

n°716442
darkoli
Le Petit Dinosaure Bleu
Posté le 05-05-2004 à 16:24:05  profilanswer
 

Matrice de départ :

1 8 9
4 7 5
2 3 6

Matrice Triée :

9 8 4
7 5 3
6 2 1


Tu veux trier comme ça ? (Comme indiqué dans la section "3c. Lecture Zigzag" http://www.tsi.enst.fr/tsi/enseign [...] peg.html).
 
Tu peux considerer ta matrice comme un tableau lineaire de largeur*hauteur cases.
 
Ensuite tu peux par exemple faire une fonction de conversion qui pour un indice entre 0 et le "nombre de case de ta matrice-1" te donne coordonnées x et y ou quelque chose dans le genre.
 
Et ensuite tu n'as plus qu'a trié ta matrice comme un simple tableau lineaire en passant par ta fonction qui gere les coordonnees reelles toute seule.
 
Le principe étant de séaprer tri et gestion des indices.
 
Bon courage.


Message édité par darkoli le 05-05-2004 à 16:30:05
n°716481
EpoK
Let's burn
Posté le 05-05-2004 à 16:44:46  profilanswer
 

en fait on ne peut changer que l'ordre des lignes et l'ordre des colonnes, on peu pas permutter des valeurs
 
en fait cette matrice représente les pourcentages de correspondance entre deux résultats,et le tri permettrait de voir rapidement quel colonne correspond avec quelle ligne  
 
un exemple :


100 50  0   0  10
0   0   100 90 0
0   30  0   10 80
0   20  0   0  10


 
on souhaiterai :


100 0   0  10 50
0   100 90 0  0
0   0   10 80 30
0   0   0  10 20


 
les valeurs que l'on doit faire apparaitre en diagonale doive etre le maximum de leur ligne et de leur colonne,
 
si probleme se pose ensuite pour les colonnes vide par exemple :


100 50  0   0   10
0   0   0   0   0
0   0   100 90  0
0   30  0   10  80
0   20  0   0   10


 
qu'il faut ramener vers le bas.
 
 
je comprend que ca puisse paraitre obscur car moi meme je m'y pert  :pt1cable:


Message édité par EpoK le 05-05-2004 à 16:53:36
n°716485
Taz
bisounours-codeur
Posté le 05-05-2004 à 16:47:10  profilanswer
 

on voit rien merci

n°716488
EpoK
Let's burn
Posté le 05-05-2004 à 16:47:42  profilanswer
 

je pense comencer par trié mes colonnes par la somme des carées celle ci

n°716492
EpoK
Let's burn
Posté le 05-05-2004 à 16:47:58  profilanswer
 

Taz a écrit :

on voit rien merci


 
oué fixed bouffe pas le [b]

mood
Publicité
Posté le 05-05-2004 à 16:47:58  profilanswer
 

n°716501
Taz
bisounours-codeur
Posté le 05-05-2004 à 16:50:02  profilanswer
 

fixed ou pas, avec tes . ça fout tout en l'air

n°716871
Ace17
Posté le 05-05-2004 à 22:51:42  profilanswer
 

EpoK a écrit :


on souhaiterai :


100 0   0  10 50
0   100 90 0  0
0   0   10 80 30
0   0   0  10 20


 
les valeurs que l'on doit faire apparaitre en diagonale doive etre le maximum de leur ligne et de leur colonne,


 
Le 10 (en 3;3) il est pas le max de sa colonne la  :??:


Message édité par Ace17 le 05-05-2004 à 22:52:10
n°717102
EpoK
Let's burn
Posté le 06-05-2004 à 11:01:00  profilanswer
 

en fait je cherche déja à trier les colonnes de mon tableau 2d en fonction des valeurs d'une ligne
 
et cela efficacement et proprment

n°717663
Ace17
Posté le 06-05-2004 à 19:43:54  profilanswer
 

Ca c'est simple :  
Apres tu appliques un tri de ton choix sur la ligne que tu veux, sauf que tu répercutes au fur et a mesure du tri les permutations que tu fais sur toute la colonne.

n°717667
Ace17
Posté le 06-05-2004 à 19:46:19  profilanswer
 

Et si tu veux faire encore plus propre et plus rapide, au lieu de travailler directement sur ta matrice, tu travailles sur une liste de colonnes; typiquement un tableau de int dont chaque case indique quelle colonne se trouve ici.
Au début, ton tableau vaut donc :
0, 1, 2, ... n-1
 
Et au fur et a mesure que tu tries, tu permutes les éléments de ce tableau et non des colonnes entieres. A la fin, tu n'auras qu'a générer ta nouvelle matrice en collant les colonnes dans le bon ordre


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Recherche algo de tri de matrice

 

Sujets relatifs
[C#] Recherche moteur SMTP, et conseil pour intégration dans un progPb de recherche dans un fichier
Comment stocker une matrice dans un tableau ??recherche de strings
recherche module e-commerce francaisje recherche codeur php...
[Concours] Recherche de doublons dans une séquenceRecherche de chaine
Recherche d'imprimantes réseau en PHPRecherche cours et didacticiels: JSP/Servlet/JavaBeans - Struts - MVC2
Plus de sujets relatifs à : Recherche algo de tri de matrice


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR