Voilà, j'ai deux tableaux qui sont liés :
tab_nompro et tab_nomproIndice
La première ligne du premier tableau correspond à la première ligne du second. il y a une correspondance ligne à ligne entre les 2 tableaux.
Maintenant, j'ai besoin de trier le tableau tab_nompro par ordre alphabétique. Mais du coup, il faut que le second tableau suive le même processus de façon à ce que la correspondance ligne à ligne soit respectée.
Pour le moment, je faisais un tri très basique et peu performant :
Mais il s'avère que cette méthode de tri est beaucoup trop lente quand il y a beaucoup d'enregistrement. Je suis confronté ici à environ 3000 élément et comme la complexité du tri est de N^2, j'obtiens environ 9000000 d'itérations!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for ($j=0;$j<$nbIndice;$j++) { for ($k=0;$k<$nbIndice-1;$k++) { if (strcasecmp($tab_nompro[$k],$tab_nompro[$k+1]) > 0) { $tmpNom = $tab_nompro[$k]; $tab_nompro[$k] = $tab_nompro[$k+1]; $tab_nompro[$k+1] = $tmpNom; $tmpIndice = $tab_nomproIndice[$k]; $tab_nomproIndice[$k] = $tab_nomproIndice[$k+1]; $tab_nomproIndice[$k+1] = $tmpIndice; } } }
Bien évidemment, le php lache l'affaire avant d'avoir pu tout traiter.
Existe-il une fonction quicksort en php? Existe-il encore plus rapide que le quicksort?
Pensez-vous que c'est une bonne solution?
Partager