Comment savoir quel algoritme parmi 2 ou plus est meilleur

nasix
Comment savoir quel algoritme parmi 2 ou plus est meilleur

Bonjour tout le monde,

J'ai des algorithmes écrits en C, et j'ai besoin d'un outils d'aide à la décision pour pouvoir dire que cet algorithme est plus souple que celui-là.

Merci de bien me donner tout signe qui peut m'aider à la recherche

fredericmazue

Que veut dire selon toi un algorithme "souple" ?

nasix

Un algorithme optimisé, de point de vue temps de réponse et occupation de mémoire.

fredericmazue

Tu vas me trouver contrariant mais quel rapport avec la souplesse ? En outre

Quote:
optimisé, de point de vue temps de réponse et occupation de mémoire.

C'est assez souvent contradictoire. Donc il te faudra probablement faire un choix. Pour prendre un exemple trivial, sans doute ton compilateur C++ te propose-t-il d'optimiser l'exécutable qu'il produit soit du point de vue de la taille, soit du point de vue de la rapidité d'exécution.

Tu demandes des outils, des benchmarks comme on dit, mais souvent c'est un vrai problème d'avoir des mesures fiables.
Le mieux et le plus simple avant de se lancer dans le compliqué est encore de regarder l'algorithme selon la notation O. Personnellement je n'utilise quasiment jamais de benchmarks. C'est d'ailleurs un domaine que je ne connais pas très bien, je l'avoue. Si tu peux écrire un algorithme bien chiadé, par exemple en O(1) plutôt qu'en O(n!) tu n'as pas besoin de benchmark :)
As tu lu Programmez! 94 ? Les bases de la choses sont expliquées dedans.

Sinon donne tes algorithmes ici. Pas le code hein, les algorithmes ou du pseudo code, ou même simplement dit ce que tu fais et de quelle manière et on pourra essayer d'en discuter.

nasix

Merci beaucoup pour la réponse, mais je suis à la recherche de ces outils non pas pour un seul algorithme, mais pour automatiser ce processus, et ça représente une tâche qui m'a été affectée dans mon poste d'administration système.

C'est vrai qu'on ne peut généralement pas avoir un algorithme optimisé en temps et en mémoire, c'est soit l'un soit l'autre, mais je déciderai de choisir un de ces paramètres selon la situation.