Accueil Finances personnelles Heaps binaires et arbres de recherche binaire utilisés dans les algorithmes - dummies

Heaps binaires et arbres de recherche binaire utilisés dans les algorithmes - dummies

Vidéo: Le principe du Tri par tas. Partie 1 2024

Vidéo: Le principe du Tri par tas. Partie 1 2024
Anonim

Un type particulier de structure arborescente est le tas binaire, qui place chacun des éléments du nœud dans un ordre spécial. Les arborescences de recherche vous permettent de rechercher rapidement des données. Obtenir des éléments de données, les placer dans un ordre trié dans un arbre, puis rechercher dans cet arbre est l'un des moyens les plus rapides de trouver des informations.

Dans un tas binaire, le noeud racine contient toujours la plus petite valeur. Lorsque vous regardez les branches, vous voyez que les branches de niveau supérieur ont toujours une valeur plus petite que les branches et les feuilles de niveau inférieur. L'effet est de garder l'arbre équilibré et dans un ordre prévisible afin que la recherche devient extrêmement efficace. Le coût est en gardant l'arbre équilibré.

Parmi toutes les tâches effectuées par les applications, la recherche est la plus longue et la plus demandée. Même si l'ajout de données (et le tri ultérieur) nécessite un certain temps, l'avantage de créer et de maintenir un ensemble de données provient de son utilisation pour effectuer un travail utile, ce qui signifie qu'il doit rechercher des informations importantes. Par conséquent, vous pouvez parfois vous en sortir avec une fonctionnalité CRUD moins efficace et même une routine de tri moins qu'optimale, mais les recherches doivent être aussi efficaces que possible. Le seul problème est qu'aucune recherche n'effectue toutes les tâches avec une efficacité absolue, vous devez donc peser vos options en fonction de ce que vous attendez de faire dans le cadre des routines de recherche.

Deux des méthodes de recherche les plus efficaces impliquent l'utilisation de l'arbre de recherche binaire (BST) et du tas binaire. Les deux techniques de recherche s'appuient sur une structure arborescente pour contenir les clés utilisées pour accéder aux éléments de données. Cependant, l'arrangement des deux méthodes est différent, ce qui explique pourquoi l'un a des avantages sur l'autre lorsqu'il exécute certaines tâches. Cette figure montre l'arrangement pour un BST.

La disposition des touches lors de l'utilisation d'un BST.

Notez comment les touches suivent un ordre dans lequel des nombres plus petits apparaissent à gauche et des nombres plus grands apparaissent à droite. Le nœud racine contient une valeur qui se trouve au milieu de la plage de touches, ce qui donne au BST une approche équilibrée facile à comprendre pour stocker les clés. Comparez cet arrangement au tas binaire montré ici.

La disposition des clés lors de l'utilisation d'un tas binaire.

Chaque niveau contient des valeurs inférieures au niveau précédent et la racine contient la valeur de clé maximale pour l'arborescence. De plus, dans ce cas particulier, les valeurs les plus basses apparaissent à gauche et les plus grandes à droite (bien que cet ordre ne soit pas strictement appliqué). La figure représente en fait un tas max binaire. Vous pouvez également créer un tas binaire min dans lequel la racine contient la valeur de clé la plus basse et chaque niveau génère des valeurs plus élevées, les valeurs les plus élevées apparaissant dans les feuilles.

Comme indiqué précédemment, BST présente certains avantages par rapport au tas binaire lorsqu'il est utilisé pour effectuer une recherche. La liste suivante fournit quelques-uns des points forts de ces avantages:

  • La recherche d'un élément nécessite un temps O (log n), par rapport au temps O (n) pour un tas binaire.
  • L'impression des éléments dans l'ordre ne nécessite que l'heure O (log n), contrairement à l'heure O (n log n) pour un tas binaire.
  • Trouver le plancher et le plafond nécessite un temps O (log n).
  • La localisation du Kth plus petit / plus grand élément nécessite l'heure O (log n) lorsque l'arbre est correctement configuré.

L'importance de ces temps dépend de votre application. BST a tendance à mieux fonctionner dans les situations où vous passez plus de temps à chercher et moins de temps à construire l'arbre. Un tas binaire a tendance à mieux fonctionner dans les situations dynamiques dans lesquelles les clés changent régulièrement. Le tas binaire offre également des avantages, comme décrit dans la liste suivante:

  • La création des structures requises nécessite moins de ressources car les tas binaires reposent sur des tableaux, ce qui les rend également plus conviviaux.
  • La construction d'un tas binaire nécessite un temps O (n), contrairement à BST, qui nécessite un temps O (n log n).
  • L'utilisation de pointeurs pour implémenter l'arborescence n'est pas nécessaire.
  • S'appuyer sur des variations de tas binaires (par exemple, le tas de Fibonacci) offre des avantages tels que l'augmentation et la diminution des temps clés de O (1) temps.
Heaps binaires et arbres de recherche binaire utilisés dans les algorithmes - dummies

Le choix des éditeurs

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Est un pointeur sur le tableau lui-même. Le tableau est une séquence de variables stockée en mémoire. Le nom du tableau pointe vers le premier élément. C'est une question intéressante sur les pointeurs: Pouvez-vous avoir un en-tête de fonction, comme la ligne suivante, et juste utiliser sizeof pour déterminer comment ...

Boost Bibliothèques et C ++ - mannequins

Boost Bibliothèques et C ++ - mannequins

De nombreux développeurs utilisent les bibliothèques Boost car elles fournissent un code de haute qualité une partie de Boost est en train d'être normalisée pour être incluse dans la bibliothèque standard. L'une des meilleures choses à propos de Boost est que la bibliothèque elle-même est gratuite. Le site Web de Boost tient à faire savoir aux développeurs qu'ils ne ...

Casser les programmes Mis à part C ++ - les mannequins

Casser les programmes Mis à part C ++ - les mannequins

Le programmeur peut casser un seul programme en fichiers sources distincts généralement appelés modules. Ces modules sont compilés séparément dans le code machine par le compilateur C ++, puis combinés au cours du processus de génération pour générer un seul programme. Ces modules sont également connus par les geeks du compilateur en tant qu'unités de traduction C ++. Le processus de combinaison ...

Le choix des éditeurs

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

L'information l'affichage ne sert pas uniquement à vérifier les paramètres de prise de vue actuels; Cela vous donne également un accès rapide à certains des paramètres les plus critiques. La touche de cette fonction est le bouton Information Edit, situé à l'arrière de l'appareil photo, à droite du viseur. Voici comment cela fonctionne: Afficher les informations ...

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

En mode d'affichage hautes lumières sur votre Nikon D7100 pense que l'appareil photo peut être surexposé clignoter dans le moniteur de l'appareil photo. L'un des problèmes de photo les plus difficiles à corriger dans un programme de retouche photo est connu sous le nom de surbrillance dans certains cercles et de surbrillance dans d'autres. Les deux termes signifient que les zones les plus claires de ...

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Présentes en bas à gauche Au coin du Nikon D3300, le bouton i active une bande de contrôle qui vous donne un accès rapide à certains paramètres de prise de vue critiques. Voici comment utiliser la bande de contrôle pour la photographie dans le viseur: Affichez l'écran d'informations. Vous pouvez le faire en appuyant sur le bouton Info. Appuyez sur le bouton i. Le haut ...

Le choix des éditeurs

Comment imprimer vos diapositives et notes Keynote - Les tétines

Comment imprimer vos diapositives et notes Keynote - Les tétines

Lorsque vous créez une présentation dans Snow Leopard Application Keynote, vous ne pouvez pas toujours vouloir imprimer des documents. Cependant, si vous présentez un long diaporama avec beaucoup d'informations que vous aimeriez que votre public se souvienne, rien ne vaut les documents qui incluent des images réduites de vos diapositives (et, facultativement, les notes de votre présentateur). Vous pouvez ...

Comment réorganiser ou supprimer les signets - les mannequins

Comment réorganiser ou supprimer les signets - les mannequins

Safari enregistre vos signets et vos dossiers de signets dans l'ordre dans lequel vous les créez, en les ajoutant au bas d'une liste toujours croissante. Si vous continuez à ajouter des marque-pages au menu Signets sans les placer dans des dossiers, vous pouvez constater que vous avez un nombre de signets gazillion indiqué bon gré mal gré et que vous ne vous en souvenez plus ...

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Avec un compte MobileMe actif, iDisk est disponible et vous fournit un espace de stockage supplémentaire. Pour connaître l'espace de stockage utilisé et pour configurer l'accès à votre dossier Public, ouvrez les Préférences Système, cliquez sur l'icône MobileMe, puis sur le bouton iDisk pour afficher les paramètres. Vos paramètres iDisk sont disponibles dans les Préférences Système. Le ...