Page 1 sur 1

[R] Trier un tableau suivant DES colonnes

Posté : sam. 09 janv. 2021 15:09
par Sepular
Bonjour,

Je cherche a trier un tableau qui possède une multitude de ligne et de colonne.
Je souhaiterais le trier dans l'ordre croissant suivant plusieurs colonnes.
En faite j'aimerais donner une "importance", un "poids" ou un "coefficient" à certaine colonne lors du tri.
Il faudrait que le tableau se trie suivant la seconde colonne mais aussi suivant la troisième et la quatrième pour au final avoir la meilleur combinaison possible de ces dites colonnes.

En espérant avoir été clair, je reste pendu à vos réflexions ( solutions ) et vous apporterais les précisions que vous jugerais nécessaire.

Cordialement.

Re: [..] Trier un tableau suivant DES colonnes

Posté : sam. 09 janv. 2021 15:23
par Sepular
ReBonjour,

Je n'ai pas encore essayé mais cela peut t'il fonctionner ?

Code : Tout sélectionner

_ArraySort($avArray, 0, 1, 1, 1)
Si cela fonctionne ce serais parfait mais je ne peut pas donner plus d'importance a la colonne 2 par rapport a la colonne 3
:arrow: Juste une petite réflexion au passage

Re: [..] Trier un tableau suivant DES colonnes

Posté : sam. 09 janv. 2021 17:17
par TommyDDR
"cela peut t'il fonctionner ?" Pourquoi ne pas tester vous même et constater le résultat ? ^^

Non, ça ne fonctionnera pas, les paramètres que vous modifiez indiquent quelles lignes doivent être trié (vous triez moins de lignes en les utilisant), vous devez les laisser à 0.
Seul le dernier paramètre que vous utilisez indique sur quelle colonne trier.
Essayez d'enchainer les _ArraySort($avArray, 0, 0, 0, x) dans l'ordre inverse de l'importance de vos colonnes, suivant la façon de trier de _ArraySort, cela amenera surement au résultat voulu.
_ArraySort($avArray, 0, 0, 0, 3)
_ArraySort($avArray, 0, 0, 0, 2)
_ArraySort($avArray, 0, 0, 0, 1)

Re: [..] Trier un tableau suivant DES colonnes

Posté : sam. 09 janv. 2021 17:33
par Sepular
ReBonjour,

Pas le temps d'essayer ce weekend je taf malheureusement mais on s'en petarade les pied, ceci n'étant pas le propos.

Alors oui je dirais que votre astuce pourrais fonctionner mais comme dis précédemment, il faut que j'essaie :D

Je repasserais cette semaine pour le retour de la petite astuce et merci.

Re: [..] Trier un tableau suivant DES colonnes

Posté : sam. 09 janv. 2021 20:07
par Sepular
ReBonjoir,

Bon mon soucis me travail au travail lol.

l'idée de trier d'abord sur la colonne la moin importante puis le refaire sur les suivante plus importante semble bonne. Mais je pense que le résultat reviendra exactement au même si je ne le faisait que sur la plus importante, car les tri successif auparavant n'apporte rien sur le dernier tri.

Je le testerais mais je pense que c illusoire.

enfaite je souhaite la meilleur combinaison possible entre les 3 colonnes et ceux même si le tri sur une des colonnes les plus importantes ne rapporte pas le plus gros ''score'' sur cette dernière.

j'ai l'impression de parler chinois a un suédois. Me comprenez vous ou je m'explique mal ?

EDIT :

Je vais faire au plus simple je pense.
je vais ajouter une colonne qui sera la moyenne des autres avec un coefficient différent appliqué sur ces dernières puis trier sur cette colonne de moyenne.
Je pense que la combinaison qui en ressortira sera celle que souhaite.
Merci lautoreflexion et la simplicité.
Je vous tiens au courant, maintenant jai hâte de tester mais il faut bien travailler, :wink:

Re: [..] Trier un tableau suivant DES colonnes

Posté : dim. 10 janv. 2021 03:54
par jchd
L'idée de tris successifs ne peut fonctionner que si l'algorithme de tri est stable, une qualité non garantie par les algorithmes employés par les fonctions de tri de tableau standard proposées par AutoIt.
De plus, une telle implémentation ne permet aucune pondération.

En conséquence, soit on emploie un tri de type quicksort C, qui permet de spécifier une fonction de collation ad-hoc, soit on ajoute en effet une colonne portant le résultat de la pondération souhaitée.

Re: [..] Trier un tableau suivant DES colonnes

Posté : dim. 10 janv. 2021 15:49
par Nine

Re: [..] Trier un tableau suivant DES colonnes

Posté : dim. 10 janv. 2021 17:35
par Sepular
ReBonjour,

Hummmm ça me semble bien compliqué a souhait ça, a étudier.
Je n'ai eu le temps que de faire des tests rapides avec ma solution qui semble prometteur.
Par contre je vais mettre dans mes cartons votre solution qui me ferais une corde en plus a l'éventail de ma programmation.

Merci pour la réponse et je redis quoi dans la semaine.

Edit : Le lien semble intéressant également

Re: [..] Trier un tableau suivant DES colonnes

Posté : dim. 10 janv. 2021 22:40
par Nine
En regardant de plus près dans l'exemple présenté, il y a plus de lignes de commentaire que de lignes de code...Pas très compliqué en fait !

Re: [..] Trier un tableau suivant DES colonnes  

Posté : lun. 11 janv. 2021 14:55
par Sepular
ReBonjour,

[@TommyDDR] Votre solution ne fait pas du tout ce que je souhaite au final

[@jchd] Votre solution n'est pas en Autoit ? Je n'ai fait aucune recherche sur votre solution puisque au final vous êtes d'accord avec ma solution ;)

[@Nine] Votre solution ne conserve pas du tout l'intégrité des lignes (a première vu, je n'ai pas étudié la question plus que ça)

La solution trouvé est d'ajouter une colonne qui a pour valeur le résultat de la moyenne pondérer souhaité.

Je vous remercie tous :wink: