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

moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention - 10 janv. 2010 à 01:37 - Dernière réponse : krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 19 janv. 2010 à 09:06
3
Merci
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-

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Meilleure réponse
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 19 janv. 2010 à 09:49
3
Merci
@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é. -

Merci krimog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de krimog
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 11 janv. 2010 à 09:58
0
Merci
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é. -
Commenter la réponse de krimog
moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention - 11 janv. 2010 à 11:32
0
Merci
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
Commenter la réponse de moi411
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 11 janv. 2010 à 11:48
0
Merci
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é. -
Commenter la réponse de krimog
moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention - 11 janv. 2010 à 15:23
0
Merci
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
Commenter la réponse de moi411

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.