Différence entre les arbres et les arbres AVL ébrasés

voix
31

J'étudie sur les différents arbres, et suis tombé sur AVL et des arbres ébrasés. je veux savoir

  1. Quelle est la différence entre les arbres et les arbres AVL ébrasés?
  2. Sur quelle base pouvons-nous sélectionnons ces tress?
  3. Quels sont positifs et de ce négatifs de ces arbres?
  4. Quelles sont les performances de ces arbres en termes de notation grand O?
Créé 19/09/2011 à 07:12
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
3

1) Quelle est la différence entre les arbres et les arbres AVL ébrasés?

Ils sont similaires dans la structure et les opérations que nous appelons sur eux. La différence est que dans les arbres ébrasés, après chaque opération, nous essayons de garder l'arbre presque parfaitement équilibré afin que les opérations futures prennent moins de temps.

2) Sur quelle base pouvons-nous sélectionnons ces tress?

arbres Splay sont toujours mieux que les arbres binaires de recherche lorsque, votre application traite avec beaucoup de données dans l'arbre, mais aura besoin d'accéder à un sous-ensemble des données très fréquemment que d'autres. Dans ce cas, les données que vous l'accès sera souvent venir près de la racine à la suite de l'évasement. En outre, un nœud peut alors être accessible avec moins de temps qu'auparavant.

En règle générale pour la sélection de ces arbres, si vous avez besoin de temps de journal « moyenne » (n) sur une période d'exploitation d'arbres puis utilisez arbre évasement. arbre binaire ne peut pas garantir.

3) Quels sont positifs et de ce négatifs de ces arbres?

Positifs pour les deux est que vous obtenez autour de log (n) théoriquement dans ces deux structures de données.

Comme les arbres ébrasés mentionnés ont log moyen (n) sur un certain nombre d'opérations. Cela signifie que, peut-être vous avez n complexité de temps pour une opération au moins une fois dans cet ensemble. Mais cela sera compensé lors de l'accès aux éléments fréquents.

Le négatif de l'arbre de recherche binaire est que, vous devez être chanceux d'avoir log (n) toujours. Si les touches ne sont pas aléatoires, l'arbre réduit à une liste comme forme avec un seul côté.

4) Quelles sont les performances de ces arbres en termes de notation grand O?

arbre Splay Log (n) en moyenne pour un groupe d'opérations d'arbres. arbre binaire Log (n) que si vos clés vont dans un ordre aléatoire.

Les résultats sur le moteur d' exécution sont évidents ici splay runtime arbre de profilage Vous pouvez voir la différence d'exécution dans la recherche avec et sans évasement.

Créé 18/01/2012 à 04:40
source utilisateur

voix
61

  1. Les deux arbres ébrasés et AVL sont des arbres binaires de recherche avec d'excellentes garanties de performance, mais ils diffèrent dans leur façon d'atteindre celui-ci garantit que la performance. Dans un arbre AVL, la forme de l'arbre est contraint en tout temps de telle sorte que la forme de l'arbre est équilibré, ce qui signifie que la hauteur de l'arbre ne dépasse jamais O (log n). Cette forme est maintenue sur des insertions et des suppressions, et ne change pas au cours des recherches. arbres Splay, d'autre part, maintenir l'efficacité en réorganisant l'arbre en réponse à ce lookups sur. De cette façon, les éléments accédés fréquemment déplacer vers le haut vers le haut de l'arbre et de meilleurs temps de recherche. La forme des arbres ébrasés n'est pas contraint, et varie en fonction de ce que sont effectuées les recherches.

  2. Il n'y a pas de règle stricte et rapide à ce sujet. Cependant, une différence essentielle entre les structures est que les arbres AVL garantissent recherche rapide (O (log n)) sur chaque opération, alors que les arbres ébrasés ne peuvent garantir que toute séquence d'opérations n prend au plus O (n log n). Cela signifie que si vous avez besoin en temps réel des recherches, l'arbre AVL est susceptible d'être mieux. Cependant, les arbres ébrasés ont tendance à être beaucoup plus rapide en moyenne, donc si vous voulez minimiser le temps d'exécution total de recherches d'arbres, l'arbre de évasement est susceptible d'être mieux. De plus, les arbres ébrasés soutiennent certaines opérations telles que le fractionnement et la fusion de façon très efficace, alors que les opérations d'arbres AVL correspondants sont plus impliqués et moins efficaces. arbres Splay sont plus économes en mémoire que les arbres AVL, parce qu'ils ne ont pas besoin de stocker l'équilibre des informations dans les noeuds. Cependant, les arbres AVL sont plus utiles dans des environnements multithread avec beaucoup de recherches, parce que dans un arbre lookups AVL peut se faire en parallèle alors qu'ils ne peuvent pas dans les arbres ébrasés. Parce que les arbres ébrasés se remodèlent l'aide de recherches, si vous avez besoin d'accéder à un petit sous-ensemble des éléments de l'arbre, ou si vous accédez à des éléments beaucoup plus que d'autres, l'arbre évasement devancera l'arbre AVL. Enfin, les arbres ébrasés ont tendance à être plus facile à mettre en œuvre que les arbres AVL, car la logique de rotation est beaucoup plus facile.

  3. Voir (2)

  4. AVL insertion d'arbre, la suppression, et les recherches se O (log n) chacun. arbres Splay ont ces mêmes garanties, mais la garantie est seulement dans un sens amorti. Toute longue séquence d'opérations prendra au plus O (n log n), mais les opérations individuelles peut prendre autant que O (n).

J'espère que cela t'aides!

Créé 04/02/2012 à 23:06
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more