Recherche autre qu'avec récursivité [Résolu]

Signaler
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2017
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
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-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
@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é. -
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2017
3
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
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2017
3
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