[perl]Optimisation d'algorithme
fxtaa
Messages postés
1050
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je possède un fichier avec environ 7000 lignes. Le but du programme est de controler que chaque ligne est unique.
Actuellement,
j'ouvre mon fichier que je met dans un tableau
je prend la premiere ligne
la compare à toutes les lignes de mon tableau (excepté celle sur laquelle je suis)
puis je prend la seconde ligne et je recommence....
En gros je fais un while dans un while. Un fichier de 7000 lignes environ met un peu plus de 5 minutes à être traités... Quelqu'un aurait une idée pour optimiser tout ça ?
Je possède un fichier avec environ 7000 lignes. Le but du programme est de controler que chaque ligne est unique.
Actuellement,
j'ouvre mon fichier que je met dans un tableau
je prend la premiere ligne
la compare à toutes les lignes de mon tableau (excepté celle sur laquelle je suis)
puis je prend la seconde ligne et je recommence....
En gros je fais un while dans un while. Un fichier de 7000 lignes environ met un peu plus de 5 minutes à être traités... Quelqu'un aurait une idée pour optimiser tout ça ?
1 réponse
-
Eventuellement tu peux faire le test par cellule et non par ligne, mais je ne suis pas sur que ça gagne du temps.
De plus, lorsque tu as tester la ligne 1 et que tu testes la 2, plus besoin de tester la 1 puis pour la 3 ni la 2 ni la 1 etc...
Ca devrait pouvoir te faire gagner un peu je pense.
Pastafarien en puissance!!!-
-
-
Ok, comme ça je n'ai pas besoin de tester toutes la ligne d'un coup mais uniquement la première partie.
C'est une idée mais bon quand je dit tableau, c'est un tableau à une entrée et le test de regexp ne prendra pas plus de temps pour une ligne de 20 caractère ou de 5.
Mais pas mal comme idée ^^.
J'ai testé le coup des lignes ca marche pas mal du tout. De 6 minutes 20 de traitement je suis passé à 3 minutes 15. T'as réussit à diminuer de moitié le temps de traitement ;).
Good job! Merci.
Ps: je laisse ouvert au cas où d'autres personnes aient d'autres idées ^^. -
-