arbre de recherche

arbre de recherche - Algo - Programmation

Marsh Posté le 26-09-2003 à 04:59:58    

il y a t'il quelques chose de plus performant dans les arbre binaire de recherche pour effectuer une recherche dans un arbre?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 26-09-2003 à 04:59:58   

Reply

Marsh Posté le 26-09-2003 à 07:13:25    

ben tu as toutes sortes d'arbres qui s'équilibrent tous seuls ...

Reply

Marsh Posté le 14-10-2003 à 16:11:44    

Les B-Trees ou arbres de Bayer, par exemple. Ce sont des arbres équilibrés où chaque noeud contient plusieurs dizaines de données, et où la profondeur dépasse rarement 3 ou 4. C'est typiquement ce qu'on utilise pour implémenter les index dans les bases de données.

Reply

Marsh Posté le 22-10-2003 à 19:13:00    

A part les algorithme de complexité O(log²(n)) (recherche dichotomique, arbre binaire) pour la recherche, je ne connais rien de plus performant sachant que leur complexité estr deja TRES bonne. :/
Si kk1 a une solution jsuis preneur ;)


Message édité par Giz le 22-10-2003 à 19:14:29
Reply

Marsh Posté le 22-10-2003 à 19:17:37    

rien de mieux qu'un arbre binaire. ne pas confondre les RB_tree et autres arbre auto-équilibrants, donc le rôle est de maintenir l'équilibre

Reply

Marsh Posté le 22-10-2003 à 19:23:40    

Taz a écrit :

rien de mieux qu'un arbre binaire. ne pas confondre les RB_tree et autres arbre auto-équilibrants, donc le rôle est de maintenir l'équilibre


 
ben si tu veux une BONNE recherche rapide dans ton arbre, t'a besoin de le tenir equilibre pour rester constamment en complexite O(log²(n)) sinon dans le PIRE des cas, ton arbre binaire vas ressembler a une liste chainee ! => complexité O(n) (ce qui est nettement moins efficace. Il te faut donc des arbres AVL.

Reply

Marsh Posté le 22-10-2003 à 19:24:40    

oui, mais étant donné un arbre binaire, y a pas de méthode plus rapide. tu ne m'as pas compris

Reply

Marsh Posté le 23-10-2003 à 13:47:42    

BifaceMcLeOD a écrit :

Les B-Trees ou arbres de Bayer, par exemple. Ce sont des arbres équilibrés où chaque noeud contient plusieurs dizaines de données, et où la profondeur dépasse rarement 3 ou 4. C'est typiquement ce qu'on utilise pour implémenter les index dans les bases de données.


Bah pour indexer du texte le plus simple c'est d'utiliser pour chaque étage une lettre du mot. C'est assez performant et simple à mettre en place :) (truc qui est utilisé pour la compression huffmann quoi)


Message édité par MagicBuzz le 23-10-2003 à 13:48:36
Reply

Marsh Posté le 23-10-2003 à 13:48:36    

MagicBuzz a écrit :


Bah pour indexer du texte le plus simple c'est d'utiliser pour chaque étage une lettre du mot. C'est assez performant et simple à mettre en place :)


 
ouaip perso j'ai bricolé le concept pour accelerer la chose (ca ne marche qu'avec eds ensembles bien disparate, sinon on retombe sur ce que tu dis la)

Reply

Marsh Posté le 23-10-2003 à 16:43:19    

MagicBuzz a écrit :


Bah pour indexer du texte le plus simple c'est d'utiliser pour chaque étage une lettre du mot. C'est assez performant et simple à mettre en place :) (truc qui est utilisé pour la compression huffmann quoi)


La structure de données utilisée pour un index dépend directement du type de données utilisées et, éventuellement, du support utilisé pour stocker la structure de données.
 
Si tout est en mémoire, on n'a pas les même contraintes que si la structure est sur disque. Parce que dans ce dernier cas, il faut réduire au maximum le nombre de noeuds auxquels on accède, quitte à disposer de gros noeuds (2, 4 ou 8 Ko, typiquement).
 
Mais si c'est en mémoire, un arbre de recherche plus classique -- et plus simple à implémenter -- ou une table de hachage fera l'affaire (Taz, avec une bonne fonction de hachage, une table de hachage est plus rapide qu'un arbre binaire).

Reply

Marsh Posté le 23-10-2003 à 16:43:19   

Reply

Marsh Posté le 07-03-2004 à 20:20:47    

Est ce que les propos avancés dans ce post sont de source sûr ?
J'ai recherché un peu ce que tu dis Giz avec google et j'arrive pas à retrouver tes chiffres sur la complexité. Aurais-tu une adresse ou je pourrais vérifier ?
Et est ce vrai comme le prétend Biface qu'une table de hachage avec une bonne fonction de hachage est plus rapide qu'un arbre binaire ?

Reply

Marsh Posté le 08-03-2004 à 05:01:53    

Ca dépend ®

Reply

Marsh Posté le 08-03-2004 à 05:18:15    

J'adore tes réponses

Reply

Marsh Posté le 03-03-2005 à 09:07:53    

Ou peut on trouver un algorithme de B tree detaillé

Reply

Marsh Posté le 03-03-2005 à 17:54:23    

os2 a écrit :

il y a t'il quelques chose de plus performant dans les arbre binaire de recherche pour effectuer une recherche dans un arbre?


 
Je comprends pas tres bien la question, tu voudrais construire un arbre pour effectuer une recherche dans un arbre ? :pt1cable:
Si tu veux reduire fortement les acces disques : B-arbres (utilisé dans les SGBD)
Sinon t'as les "skew heaps" qui sont excellents (fusion, insertion, supprMin en O(log n))...  


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed