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

  FORUM HardWare.fr
  Programmation
  Perl

  Trier un tableau ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trier un tableau ...

n°1487896
greeeg
Posté le 07-12-2006 à 12:13:17  profilanswer
 

Bonsoir,  
 
Voici mon petit problème.
J'ai à ma disposition :
 
$ptrTableau qui est un pointeur sur un tableau contenant des hash
@tabTaille qui contient dans chaque case la valeur selon laquelle je veux trier $ptrTableau.
 
Par exemple dans une case de $ptrTableau il y a une hash cette hash est composée d'une clé et d'une valeur (qui est un tableau) et j'aimerais trié $ptrTableau selon la taille de tableaux contenus dans les hash. Donc j'ai mis dans chaque case i de @tabTaille la taille du tableau contenu dans la hash de la case i de $ptrTableau.
 
Comment faire ?
J'ai trouvé ça, mais ca marche pas...

Code :
  1. my @retour = $ptrTableau->[sort{$tabTaille[$a] <=> $tabTaille[$b]} 0 .. $#tabTaille];


 
Merci de votre aide

mood
Publicité
Posté le 07-12-2006 à 12:13:17  profilanswer
 

n°1487899
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-12-2006 à 12:26:45  profilanswer
 

pas compris un truc dans des hash tu as une seule clé/valeur?
Sinon tu prends la plus grande taille de tableau de toutes les valeurs de la hash?
Genre ton truc ça ressemble à ça:

Code :
  1. my $ptrTableau = [{'a'=>[1..3], 'b'=>[2..10], 'c'=>[3..8]},{'d'=>[1..2], 'e'=>[4..8], 'f'=>[1..12]}];

n°1487901
greeeg
Posté le 07-12-2006 à 12:29:03  profilanswer
 

anapajari a écrit :

pas compris un truc dans des hash tu as une seule clé/valeur?
Sinon tu prends la plus grande taille de tableau de toutes les valeurs de la hash?
Genre ton truc ça ressemble à ça:

Code :
  1. my $ptrTableau = [{'a'=>[1..3], 'b'=>[2..10], 'c'=>[3..8]},{'d'=>[1..2], 'e'=>[4..8], 'f'=>[1..12]}];



 
Oui c'est ça. Now je veux trier $ptrTableau selon la taille des tableaux contenus dans les hashs....

n°1487924
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-12-2006 à 13:15:23  profilanswer
 

selon la taille des tableaux contenus dans les hashs c'est:

  • selon la somme totale des tailles de tous les tableaux contenus dans la hash

OU

  • selon la taille du plus grand tableau contenu dans la hash

?

n°1487928
greeeg
Posté le 07-12-2006 à 13:24:38  profilanswer
 

anapajari a écrit :

selon la taille des tableaux contenus dans les hashs c'est:

  • selon la somme totale des tailles de tous les tableaux contenus dans la hash

OU

  • selon la taille du plus grand tableau contenu dans la hash

?


selon la taille du plus grd tableau contenu dans la hash... de manière croissante

n°1487931
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-12-2006 à 13:37:19  profilanswer
 

je ferais un fonction sort dans ce genre là:

Code :
  1. sub gregSort {
  2.   my $maxA = 0;
  3.   my $maxB = 0;
  4.   foreach (keys %$a){
  5.      $maxA = $#{$$a{$_}} if $maxA < $#{$$a{$_}};
  6.   }
  7.   foreach (keys %$b){
  8.      $maxB = $#{$$b{$_}} if $maxB < $#{$$b{$_}};
  9.   }
  10.   return $maxA<=>$maxB;
  11. }
 

Et ensuite tu n'as plus qu'a faire

Code :
  1. my @retour = sort gregSort @$ptrTableau;


Message édité par anapajari le 07-12-2006 à 14:03:32
n°1487940
greeeg
Posté le 07-12-2006 à 13:54:16  profilanswer
 

Ca marche... 1000 mercis !


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

  Trier un tableau ...

 

Sujets relatifs
Comment trier un tableau ?Trier un tableau sous excel horizontalement avec VBA(résolu)
[JAVA]trier un tableau sans comparable ni compareToTableau à trier en fct de deux champs
trier un tableauTrier meilleurs scores dans un tableau
Trier meilleurs scores dans un tableauJe rage : J'arrive pas a trier un tableau...
trier plusieurs tableau de mem dimension avec un unique ?Trier un tableau par date ...
Plus de sujets relatifs à : Trier un tableau ...


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