Recherche autre qu'avec récursivité

Résolu
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 10 janv. 2010 à 01:37
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 19 janv. 2010 à 09:49
Bonsoir à tous,
Je voudrais juste savoir si il existe une autre solution que la récursivité pour rechercher un fichier sur un disque dur. Je suppose que oui, mais je ne trouve pas...
Et si oui, j'aimerais pouvoir l'utiliser!!!


Voilà c'est tout! Je vous remercie d'avance et attends vos réponse.

moi

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 janv. 2010 à 09:06
Bonjour,
Tout algorithme récursif peut être transformé en un équivalent non-récursif.
Donc oui, c'est faisable.

Le problème c'est que, très souvent, la transformation de l'un à l'autre est très complexe. Tellement, qu'on ne l'utilise pas... (pour la recherche d'un fichier sur le risque dur, je ne sais pas, mais j'imagine que oui sinon cette méthode serait très utilisée).

Comme dit plus haut, s'il n'y pas de table indexant les fichiers, la meilleure solution reste ici probablement une approche récursive...


[hr]
-Site personnel-
-Blog-
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
19 janv. 2010 à 09:49
@Bidou. En effet, je suis d'accord que tout algorithme récursif peut être transformé en équivalent non-récursif. Cependant, dans des cas où l'algo récursif semble, dans son principe, le choix "évident" (recherche de fichiers, outil "pot de peinture" de paint...), l'algorithme non-récursif est généralement beaucoup moins performant.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
11 janv. 2010 à 09:58
Salut

A ma connaissance, non, il n'existe pas d'autre moyen. Sauf peut-être en touchant directement à la table d'allocation de fichiers, mais je doute que ce soit faisable en C# (et je ne sais pas du tout à quoi ça ressemble).

Pourquoi ne veux-tu pas utiliser la récursivité ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
11 janv. 2010 à 11:32
Salut,
Je ne veux pas spécialement utiliser autre chose, c'est juste que le programme que j'ai fait, est plus lent que la recherche de windows... Je me suis donc dit qu'il existait une autre méthode de recherche et n'ayant rien trouvé j'ai posé la question...

(Un peu comme les méthodes de tri! On commence par le tri à bulle parce que c'est plus simple!)

Voilà c'est tout, je te remercie pour ton aide!!!



moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
11 janv. 2010 à 11:48
c'est juste que le programme que j'ai fait, est plus lent que la recherche de windows

Sur Windows Vista et 7, les fichiers sont indexés dans une base de données, ce qui permet une recherche extrêmement rapide (quasi instantanée) des données. Sur Windows XP, il fonctionne à priori de manière récursive. Et j'aurais tendance à dire : heureusement que le système de recherche créé par un simple (n'y vois rien de péjoratif) développeur de 24 ans (probablement en à peine quelques heures) est moins performant que celui fait par Microsoft dans son OS !

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 3
11 janv. 2010 à 15:23
Re,
Ca c'est vrai et je suis entièrement d'accord avec toi!!! Ce serait une humiliation pour Microsoft (je dit ça tout en sachant que je développe en amateur...)!
Là en l'occurence ma fonction de recherche est dans une dll donc ça m'a prit 2 minutes, à peine!

Voili voilou...

Salut.
moi
0
Rejoignez-nous