La différence entre la recherche binaire et binaire un arbre de recherche?
Quelle est la différence entre la recherche binaire et binaire un arbre de recherche?
Sont-ils les mêmes? La lecture de l'internet, il semble que le deuxième est seulement pour les arbres (jusqu'à 2 enfants de nœuds) et les binaires de recherche de ne pas suivre cette règle. Je n'ai pas tout à fait le faire.
Un binaire de recherche est un algorithme, un arbre de recherche binaire est une structure de données. Voir arbre de recherche binaires et binaire de l'algorithme de recherche.
Je suis d'accord avec votre commentaire à propos de la différence; je pense qu'il est intéressant de souligner, cependant, que lorsque vous effectuez une recherche binaire quelque chose, vous êtes implicitement traiter que quelque chose comme un arbre de recherche binaire. I. e., la différence est en grande partie l'un de l'interface.
Je suis d'accord avec votre commentaire à propos de la différence; je pense qu'il est intéressant de souligner, cependant, que lorsque vous effectuez une recherche binaire quelque chose, vous êtes implicitement traiter que quelque chose comme un arbre de recherche binaire. I. e., la différence est en grande partie l'un de l'interface.
OriginalL'auteur RollRoll | 2014-02-05
Vous devez vous connecter pour publier un commentaire.
Binaires De Recherche Arbres
Un nœud dans un arbre binaire est une structure de données qui a un élément, et une référence à deux autres arbres binaires, généralement appelé la gauche et la droite sous-arbres. I. e., un nœud présente une interface comme ceci:
Binaire de recherche arbre est un arbre binaire (c'est à dire, un noeud, généralement appelé la racine) avec la propriété que la gauche et la droite sous-arbres sont aussi des arbres binaires, et que tous les éléments de tous les nœuds du sous-arbre gauche sont moins de la racine de l'élément, et tous les éléments de tous les nœuds du sous-arbre droit sont supérieures à la racine de l'élément. E. g.,
Binaire De Recherche
Binaire de recherche est un algorithme pour trouver un élément dans l'arbre de recherche binaire. (C'est souvent exprimé comme un moyen de chercher une collection ordonnée, et c'est un équivalent de la description. Je vais décrire l'équivalence par la suite.) C'est ce:
Cela est généralement une méthode efficace de recherche, parce qu'à chaque étape, vous pouvez supprimer la moitié de l'espace de recherche. Bien sûr, si vous avez un mal équilibré binaires un arbre de recherche, il peut être inefficace (il peut dégrader à la recherche linéaire). Par exemple, il a de mauvaises performances dans un arbre comme:
Binaire de Recherche sur les Tableaux
Binaire de recherche est souvent présenté comme une méthode de recherche pour triés les tableaux. Ce n'est pas en contradiction avec la description ci-dessus. En fait, ce qu'il met en évidence le fait que nous n'avons pas fait attention à la manière d'un arbre de recherche binaire est mis en œuvre; nous venons de soins que l'on peut prendre un objet et de faire trois choses: recevez un élément, obtenir une gauche sous-objet, et d'obtenir un droit de sous-objets (sous réserve, bien sûr, les contraintes sur les éléments de la gauche) à moins que l'élément, et les éléments dans le droit étant plus grand, etc.).
Nous pouvons faire les trois choses avec un tableau trié. Avec un tableau trié, la "élément" est le deuxième élément du tableau, à gauche, sous-objet est la subarray à la gauche de celui-ci, et le droit de sous-objet est la subarray à la droite de celui-ci. E. g., le tableau
correspond à l'arbre:
Ainsi, nous pouvons écrire une méthode de recherche binaire pour les tableaux comme ceci:
Conclusion
Comme souvent présentée, de recherche binaire fait référence à la matrice en fonction de l'algorithme présenté ici, et l'arbre de recherche binaires se réfère à un arbre en fonction de structure de données avec certaines propriétés. Cependant, les propriétés binaires de recherche et les propriétés que les binaires de recherche arbres ont à faire de ces deux faces de la même pièce de monnaie. Étant un arbre de recherche binaire implique souvent une mise en oeuvre particulière, mais c'est vraiment une question de la fourniture de certaines opérations et satisfaisant certaines contraintes. Binaire de recherche est un algorithme qui fonctionne sur les structures de données qui ont ces opérations et de répondre à ces contraintes.
OriginalL'auteur Joshua Taylor
Non, ils ne sont pas les mêmes.
Un arbre de recherche binaire:
Recherche binaire:
Et, bien sûr, un structure de données est:
Tout un algorithme est:
La de recherche processus dans un arbre de recherche binaire (où l'on recherche une valeur spécifique dans l'arborescence) peut être considéré comme similaire à (ou une instance, selon vos définitions et si vous êtes en utilisant un équilibré BST) binaire de recherche, car cela ressemble aussi à la moyenne de l'élément et se répète à gauche ou à droite, selon le résultat de la comparaison entre cette valeur et la valeur cible.
...tableau, le sous-arbre gauche est le sous-tableau à gauche de la racine, et le sous-arbre droit est le sous-tableau à droite de la racine.
La première partie de votre commentaire est exactement ce que j'essayais de dire avec le dernier paragraphe.
OriginalL'auteur Dukeling
Pour ceux qui sont venus ici pour vérifier rapidement les utiliser. En plus des réponses,posté ci-dessus, je tiens à ajouter de la complexité à l'égard des opérations pour chacune de ces techniques.
Binaires un Arbre de recherche:
De recherche: θ(log(n)), dans le Pire des cas (O(n)) pour déséquilibrée BST,
Insérer de nœud: θ(log(n)) , dans le Pire des cas (O(n)) pour déséquilibrée BST
Suppression de nœud: θ(log(n)), de la , Pire des cas (O(n)) de déséquilibre de la STB
Équilibré Binaires un Arbre de recherche:
De recherche: log(n),
Insérer de nœud: O(log(n))
Suppression de nœud: O(log(n))
Binaire de Recherche sur tableau trié:
De recherche: O(log(n)) Mais,
Insertion de nœud: Pas possible si le tableau est alloué statiquement et déjà complet. Sinon O(n) ( O(n) pour déplacer des plus grands éléments de tableau à attenant à droite)
Suppression de nœud: O(log(n)) + O(n). (Il serait donc O(log(n)) pour trouver la position de la suppression + O(n) pour déplacer des plus grands éléments de tableau à attenant à gauche)
Donc en fonction de vos besoins, vous pouvez choisir si vous avez besoin rapidement d'insertions et de suppressions. Si vous n'en avez pas besoin, puis garder les choses dans le tableau trié de travail pour vous, en tant que matrice de prendre moins de mémoire par rapport à l'arbre d'
Pourquoi log(n) + O(n) O(log(n)) pour trouver la position de suppression comment avez-vous calculer ?
J'ai reformaté la réponse. Pour trouver la position de la suppression d'une valeur, il peut faire une recherche binaire sur ce tableau trié qui serait en O(log(n)).
OriginalL'auteur Alok Nayak
Binaires un arbre de recherche est juste une structure de données pas un des algorithmes tout en binaire de recherche est un algorithme dans lequel il compare à la recherche de la valeur avec la valeur de la clé du moyen-élément du tableau. Si les touches de match, alors un élément correspondant a été trouvé et son index, ou la position, est renvoyé. Sinon, si la recherche de la clé est inférieure à la moyenne de l'élément clé, puis l'algorithme répète son action sur le sous-tableau à gauche du milieu de l'élément ou, si la recherche de la clé est plus grande, sur le sous-tableau à droite. Si le solde du tableau de recherche est vide, alors la clé ne peut pas être trouvé dans le tableau et un spécial "pas trouvé" indication est retourné
OriginalL'auteur Fahad Altaf