PROGRAMMATION 3A: ALGORITHMIQUE Arbres équilibrés

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "PROGRAMMATION 3A: ALGORITHMIQUE Arbres équilibrés"

Transcription

1 PROGRAMMATION 3A: ALGORITHMIQUE Arbres équilibrés Introduction Conception: arbres Définition et propriétés d'un arbre Construction Implémentation: arbres bicolores Propriétés des arbres bicolores Insertion d'un nœud Algorithmes: insertion simple, scission d'un nœud, rotations simple et double Analyse de performance

2 Introduction La complexité de la recherche dans les arbres binaires se comporte de manière catastrophique dans les pires cas Il existe des techniques qui permettent de garantir que ces pires cas n'arrivent jamais; ces techniques utilisent des arbres équilibrés L'implémentation d'un arbre équilibré n'est pas triviale; elle illustre la différence entre les concepts de haut-niveau et la programmation au bas-niveau

3 Arbres La structure d'arbre doit être enrichie pour contenir des nœuds de degré 2, 3 et 4 contenant respectivement 1, 2 et 3 clés Un 3-nœud contenant des clés X et Y possède des liens vers des sous-arbres contenant respectivement les clés inférieures à X, compris entre X et Y et supérieures à Y (toujours au sens large) Un 4-nœud contenant des clés X,Y et Z possède des liens vers des sous-arbres contenant respectivement les clés inférieures à X, compris entre X et Y, compris entre Y et Z et supérieures à Z (toujours au sens large)

4 Insertion dans un arbre L'insertion d'une nouvelle clé est effectuée dans les feuilles si la feuille est un 2 ou 3-nœud, l'insertion est triviale; si la feuille est un 4-noeud, celui-ci est scindé en deux 2- noeuds, en remontant la troisième clé vers le noeud père

5 Règles de construction Pour éviter de remonter les clés en cascade, il faut décomposer les 4-nœuds dans la phase déscendante (de recherche) Si la racine est un 4-nœud, elle est décomposée en trois nœuds binaires

6 Construction d'un arbre 2-3-4

7 Propriétés des arbres (1/2) Les arbres construits de manière descendante sont parfaitement équilibrés La recherche dans un arbre nécessite au plus la visite de lg N + 1 nœuds L'insertion dans un arbre nécessite dans le pire cas la scission d'au plus lg N + 1 nœuds L'insertion dans un arbre nécessite en moyenne moins de une scission

8 Propriétés des arbres (2/2) Empiriquement, on observe qu'un arbre contient rarement des 4-nœuds qui soient internes

9 Conclusion à propos des arbres En théorie, le modèle des abres répond parfaitement aux objectifs et a un comportement optimal dans les pires cas En pratique, une implémentation directe (en distinguant trois types de nœuds) s'avère trop complexe et l'efficacité des algorithmes dans le cas moyen en serait fortement diminuée

10 Arbres bicolores Un arbre peut être représenté par un pure arbre binaire moyennant un bit supplémentaire par nœud L'idée consiste à distinger deux types de liens: les liens rouges pour représenter la structure interne des 3- et 4-nœuds les liens noirs correpondant aux liens entre les nœuds de l'arbre 2-3-4

11 Illustration d un arbre bicolore La structure interne des 3- et 4-nœuds est la suivante les 4-nœuds sont représentés par trois nœuds binaires les 3-nœuds sont représentés par deux nœuds binaires (2 possibilités)

12 Exemple d'arbre représenté par un arbre bicolore

13 Propriété des arbres bicolores Sur un chemin menant de la racine à une feuille, il n'y a jamais deux liens rouges qui se suivent Tous ces chemins ont le même nombre de liens noirs La profondeur d'une feuille varie au maximum du simple au double; la profondeur de l'arbre reste donc de l'ordre de lg N

14 Algorithmes sur les arbres bicolores La couleur d'un lien peut être représentée par un bit d'information associé au nœud fils L'algorithme de recherche treesearch pour les arbres binaires s'applique sans modification aux arbres bicolores L'insertion d'un enregistrement dans un arbre bicolore engendre un faible surcoût par rapport à l'insertion dans un arbre binaire classique

15 Algorithme d'insertion le parcours d'un arbre en prévision d'une insertion nécessite le maintien de pointeurs sur 4 générations! (fils, père, grand-père et arrière-grand-père) static struct node *x, *p, *g, *gg; rbtreeinsert(int v, int info) { x = head; p = head; g = head; while (x!= z) { gg = g; g = p; p = x; x = (v < x->key)? x->l : x->r; if (x->l->red && x->r->red) split(v); } x = (struct node *) malloc(sizeof *x); x->key = v; x->info = info; x->l = z; x->r = z; if (v < p->key) p->l = x; else p->r = x; split (v); }

16 Scission d'un 4-nœud Dans certaines situations, la scission d'un 4-nœud revient à échanger la couleur de certains liens

17 Scission d'un 4-nœud (suite) Dans d'autres situations la scission d'un 4-nœud nécéssite une transformation de la structure de l'arbre. On distingue la rotation simple la rotation double

18 Rotation simple Pour réaliser une rotation simple, trois liens doivent être mis à jour

19 Algorithme de rotation L'algorithme de rotation le long du chemin de recherche de v à partir du nœud y s'exprime ainsi struct node *rotate(int v, struct node *y) { struct node *c, *gc; c = (v < y->key)? y->l : y->r; if (v < c->key) { gc = c->l; c->l = gc->r; gc->r = c; } else { gc = c->r; c->r = gc->l; gc->l = c; } if ( v < y->key) y->l = gc; else y->r = gc; return gc; } La procédure ne fait pas le changement de couleur!

20 Algorithme de scission L'algorithme de scission revient à une combinaison de rotations et de changement d'étiquetage; deux cas sont à distinguer: la rotation simple la rotation double composée de deux rotations simples split(int v) { x->red = 1; x->l->red = 0; x->r->red = 0; if (p->red) { g->red = 1; if (v < g->key!= v < p->key) p = rotate(v,g); x = rotate(v,gg); x->red = 0; } head->r->red = 0; }

21 Illustration des étapes d'une scission Cas de l'insertion d'une clé qui provoque une scission avec double rotation

22 Algorithme d'initialisation static struct node { int key, info, red; struct node *l, *r; }; static struct node *head, *z, *gg, *g, *p, *x; rbtreeinitialize() { z = (struct node *) malloc(sizeof *z); z->l = z; z->r = z; z->red = 0; z->info = -1; head = (struct node *) malloc(sizeof *head); head->r = z; head->key = 0; head->red = 0; }

23 Illustration de la construction d'un arbre bicolore

24 Exemples d'arbres bicolores arbre bicolore aléatoire arbre bicolore dégénéré

25 Analyse des performances Dans un arbres bicolore contenant N nœuds aléatoires la recherche d'une clé nécessite environ lg N comparaisons l'insertion d'un nouvel enregistrement nécessite en moyenne moins de une rotation Dans un arbres bicolore quelconque (pire cas) contenant N nœuds la recherche d'une clé nécessite moins de 2 lg N + 2 comparaisons l'insertion d'un enregistrement nécessite moins de quatre fois moins de rotations que de comparaisons

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

4.2 Les arbres binaires de recherche

4.2 Les arbres binaires de recherche 4.2 Les arbres binaires de recherche 4.2.1 Définition Les arbres binaires de recherche sont utilisés pour accélérer la recherche dans les arbres m-aires. Un arbre binaire de recherche est un arbre binaire

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

pedigree d'un cheval Zoe ; son père est Tonnerre et sa mère Belle ; mère de Belle est Rose et père de Belle est Eclair jean jean marc paul luc

pedigree d'un cheval Zoe ; son père est Tonnerre et sa mère Belle ; mère de Belle est Rose et père de Belle est Eclair jean jean marc paul luc Chap. 3 Les arbres binaires Un arbre est un ensemble de nœuds, organisés de façon hiérarchique, à partir d'un nœud distingué, appelé racine. La structure d'arbre est l'une des plus importantes et des plus

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche N.E. Oussous oussous@lifl.fr FIL USTL SDC - Licence p.1/16 Arbres binaires de recherche Un arbre binaire T est un arbre binaire

Plus en détail

Initiation aux algorithmes des arbres binaires

Initiation aux algorithmes des arbres binaires Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.

Plus en détail

Programmation avancée

Programmation avancée Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Chap. VII : arbres binaires

Chap. VII : arbres binaires Chap. VII : arbres binaires 1. Introduction Arbre : collection d objets avec une structure hiérarchique Structure intrinsèque descendants d une personne (elle incluse) A ascendant connus d une personne

Plus en détail

Algorithmique IN102 TD 3

Algorithmique IN102 TD 3 Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre

Plus en détail

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution.

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution. Plan Arbres de segments Arbres de segments Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates Problème : Chercher, dans un ensemble d intervalles de la droite réelle, les intervalles

Plus en détail

Arbres binaires de recherche et arbres rouge noir

Arbres binaires de recherche et arbres rouge noir Institut Galilée lgo, rbres, Graphes I nnée 006-007 License rbres binaires de recherche et arbres rouge noir Rappels de cours et correction du TD rbres binaires de recherche : définitions Un arbre binaire

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Programmation fonctionnelle

Programmation fonctionnelle 1/30 Programmation fonctionnelle Notes de cours Cours 9 23 novembre 2011 Sylvain Conchon sylvain.conchon@lri.fr 2/30 Les notions abordées cette semaine Les foncteurs Set.Make et Map.Make d Ocaml Arbres

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Arbres bien équilibrés

Arbres bien équilibrés Arbres bien équilibrés ENSIIE : Programmation avancée 1/24 Recherche par dichotomie on aimerait avoir des opérations de recherche, d insertion et de suppression efficaces en moyenne et dans le pire des

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

alg - Arbres binaires de recherche [br] Algorithmique

alg - Arbres binaires de recherche [br] Algorithmique alg - Arbres binaires de recherche [br] Algorithmique Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 25 avril 2015 Table des matières 1 Définition, Parcours, Représentation

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

Plus en détail

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul Programmation objet Cours n 8 Structures de données partie 3 Arbres binaires de calcul 1 Arbre binaire de calcul Nous avons vu l'utilisation des arbres binaires en tant que structure de données optimisée

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 6 Arbres binaires de recherche 6.1 Introduction On a étudié le problème de la recherche dans une collection d éléments ordonnés entre eux : on a montré que Pour une liste contiguë, la recherche

Plus en détail

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1 Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche Université Paris Diderot Paris L Informatique Algorithmique Année 00-0, er semestre TD n Arbres Binaire de Recherche Le type de donné arbre" sera utilisé pour indiquer l ensemble de toutes les Arbres Binaires

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012. Les Files

Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012. Les Files . Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012 Algorithmique et Programmation Les structures de données Les Files Introduction Une File ressemble fortement à

Plus en détail

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Algorithmique P2 HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Structure de tas - arbre Un tas est une structure de données qui Permet un nouveau type de tri (Tri par tas) Permet l'implémentation

Plus en détail

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

RECURSIVITE ARBRES BINAIRES

RECURSIVITE ARBRES BINAIRES RECURSIVITE ARBRES BINAIRES Insertion, Parcours pré, post et in ordre, Recherche, Suppression. Ch. PAUL Algorithmique Arbres binaires 1 ARBRE BINAIRE DEFINITION RECURSIVE Les arbres binaires sont des arbres

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Cours numéro 9 : arbres binaires et de recherche

Cours numéro 9 : arbres binaires et de recherche Cours numéro 9 : arbres binaires et de recherche LI213 Types et Structures de données Licence d Informatique Université Paris 6 Arbre Arbre Un arbre est un ensemble fini A d éléments, liés entre eux par

Plus en détail

Arbres Binaires de Recherche : Introduction

Arbres Binaires de Recherche : Introduction Arbres Binaires de Recherche : Introduction I. Guessarian cours ISN 11 janvier 2012 LIAFA, CNRS and University Paris Diderot 1/13 Arbre Binaire de Recherche Un Arbre Binaire de Recherche (ABR) est un arbre

Plus en détail

Devoir Surveillé informatique MP, PC, PSI

Devoir Surveillé informatique MP, PC, PSI NOM : Classe : Devoir Surveillé informatique MP, PC, PSI L utilisation des calculatrices n est pas autorisée pour cette épreuve. Le langage de programmation choisi est Python. L espace laissé pour les

Plus en détail

TP 4 -Arbres Binaires -

TP 4 -Arbres Binaires - L3 Informatique Programmation fonctionnelle OCaml Année 2013/2014 TP 4 -Arbres Binaires - Un arbre binaire est une structure de données qui peut se représenter sous la forme d une hiérarchie dont chaque

Plus en détail

Exercice 1 : Questions diverses (5 points)

Exercice 1 : Questions diverses (5 points) Université Claude Bernard Lyon 1 Licence Sciences, Technologies, Santé L2 Année 2010-2011, 2ème semestre LIF5 Algorithmique & Programmation procédurale Contrôle final du 20 juin 2011 Durée : 1h30 Note

Plus en détail

Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche

Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche Dictionnaires ordonnés: Opérations principales: trouver(k): find(k): Si le dictionnaire a une entrée de clé k, retourne la valeur

Plus en détail

10' - LES ARBRES BINAIRES

10' - LES ARBRES BINAIRES Ch 10' - LES ARBRES BINAIRES On va restreindre les capacités des arbres en obligeant les nœuds à posséder au maximum deux sous-arbres. Ces nouveaux arbres seront plus faciles à maîtriser que les arbres

Plus en détail

IUP Miage Master MIAGE, spécialité SIMI Module T1/D226 Activité n 1 2012-1

IUP Miage Master MIAGE, spécialité SIMI Module T1/D226 Activité n 1 2012-1 IUP Miage Master MIAGE, spécialité SIMI Module T1/D226 Activité n 1 2012-1 NB : Le travail demandé est un travail personnel. L'étudiant s'engage donc, par le rendu de ce travail, à garantir sur son honneur

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

1 Introduction. 2 Algorithmes sans élagage. 2.1 Minimax. Chapitre 3 : Jeux (Février 2007, Pierre Gançarski)

1 Introduction. 2 Algorithmes sans élagage. 2.1 Minimax. Chapitre 3 : Jeux (Février 2007, Pierre Gançarski) Chapitre 3 : Jeux (Février 2007, Pierre Gançarski) 1 Introduction Quatre caractérisques pour les jeux étudiés : jeux à deux : deux adversaires eectuent alternativement des coups, chaque défaillance de

Plus en détail

Programmation récursive

Programmation récursive Année 2004-2005 F. Lévy IUT De Villetaneuse Dép t informatique Cours d'algorithmique 2 éme Année Cours 8 Programmation récursive 1. Qu'est-ce que la programmation récursive Définition : la programmation

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Plan. Bases de données. Cours 3 : Indexation. Opérations sur les fichiers. Le fichier comme abstraction du support physique. Polytech Paris-Sud

Plan. Bases de données. Cours 3 : Indexation. Opérations sur les fichiers. Le fichier comme abstraction du support physique. Polytech Paris-Sud Plan Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 3 : Indexation kn@lri.fr http://www.lri.fr/~kn 3.1 Introduction 3.2 Types d'indexes 3.3 Structures de données pour les indexes 3.4 Hash-index

Plus en détail

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais.

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. 9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. Définition : Un monceau (tas) est un arbre binaire complet dans lequel il existe un ordre entre un nœud et

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)

Plus en détail

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,

Plus en détail

Application des arbres binaires. Plan

Application des arbres binaires. Plan Application des arbres binaires. Plan Compter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles

Plus en détail

Les arbres Florent Hivert

Les arbres Florent Hivert 1 de 1 Algorithmique Les arbres Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 1 Algorithmes et structures de données La plupart des bons algorithmes fonctionnent

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Compression méthode de Huffman

Compression méthode de Huffman Compression méthode de Huffman Thierry Lecroq Université de Rouen FRANCE La méthode de Huffman consiste à remplacer les caractères les plus fréquents par des codes courts et les caractères les moins fréquents

Plus en détail

( n) !n! 0. Compter les arbres binaires (1) Application des arbres binaires. Plan

( n) !n! 0. Compter les arbres binaires (1) Application des arbres binaires. Plan pplication des arbres binaires. Plan ompter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles

Plus en détail

Exercice sur les arbres binaires de recherche

Exercice sur les arbres binaires de recherche Exercice sur les arbres binaires de recherche Voici une liste aléatoire de 1 éléments. Notez que vous pouvez faire cet exercice en prenant une autre liste aléatoire ; évidemment, il y a peu de chances

Plus en détail

CH.1 ARBRES. 1.1 La terminologie 1.2 La représentation des arbres 1.3 Les arbres binaires. 1.1 La terminologie. Racine hauteur 3.

CH.1 ARBRES. 1.1 La terminologie 1.2 La représentation des arbres 1.3 Les arbres binaires. 1.1 La terminologie. Racine hauteur 3. CH. ARBRES. La terminologie.2 La représentation des arbres.3 Les arbres binaires Info S4 ch. La terminologie Livre Racine hauteur 3 CH CH2 CH3 S. S.2 S2. S2.2 S2.3 Nœud interne S2.2. S2.2.2 hauteur Nœud

Plus en détail

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire Chapitre option informatique Arbres binaires. Introduction Dans son acceptation la plus générale, un arbre est un graphe acyclique orienté enraciné : tous les sommets, à l exception de la racine, ont un

Plus en détail

Collections : Tables associatives

Collections : Tables associatives Table associative Collections : Tables associatives Théorie et pratique de la programmation Michel Schinz 2013-03-18 Rappel : une table associative ou dictionnaire (map ou dictionary en anglais) est une

Plus en détail

Etude de la suppression de clés dans les arbres lexicographiques équilibrés

Etude de la suppression de clés dans les arbres lexicographiques équilibrés Université de Tours UFR Sciences & Techniques Av. Monge, Parc de Grandmont 37200 TOURS, FRANCE Tél. (33)2-47-36-70-20 www.univ-tours.fr http://depinfo.univ-tours.fr Département d Informatique Projet d

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

Plus en détail

Structures de données et algorithmes

Structures de données et algorithmes Structures de données et algorithmes Chapitre 4 Les arbres Nous introduisons dans ce chapitre le TDA : arbres binaires Ce TDA est intéressant pour plusieurs raisons : Les arbres de recherche binaire permettent

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (2eme session) durée 2h Tous documents et calculatrices autorisés. Le sujet comporte 6 pages Le temps approximatif ainsi que le barème

Plus en détail

Arbres binaires de recherche optimaux et quasi-optimaux

Arbres binaires de recherche optimaux et quasi-optimaux Université Libre de Bruxelles Faculté des Sciences Département d Informatique Arbres binaires de recherche optimaux et quasi-optimaux Mémoire présenté par Gabriel Kalyon en vue de l obtention du grade

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Programme. Pimp A - info121a. Exemple: Arbres d Hierarchie. Traverse et Calculs dans Arbres. Tri Récursivité Dichotomie Arbre Graphe Examen blanc

Programme. Pimp A - info121a. Exemple: Arbres d Hierarchie. Traverse et Calculs dans Arbres. Tri Récursivité Dichotomie Arbre Graphe Examen blanc Programme Pimp A - info121a Programmation IMPérative Avancée Burkhart Wolff Frédéric Vernier Tri Récursivité Dichotomie Arbre Graphe Examen blanc Recherche linéaire Diviser pour mieux régner Traverse et

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

3 Structures de données Tableaux Listes. Problème du tri. Tri rapide

3 Structures de données Tableaux Listes. Problème du tri. Tri rapide Cours 2 Algorithmique IN102-02 Michel Mauny ENSTA Prénom.Nom@ensta.fr 1 Tris Retour sur fusion et quicksort Complexité minimale Efficacité 2 Récursivité 3 Structures de données Tableaux Listes Michel Mauny

Plus en détail

Les arbres binaires de recherche équilibrés

Les arbres binaires de recherche équilibrés Les arbres binaires de recherche équilibrés Stéphane londu Table des matières 1 rbres binaires de recherche 1.1 Rappels.................................. 1. Rotations................................. rbres

Plus en détail

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51 Séance de TD 05 1 Exercice 1 1. Dessinez les arbres binaires de recherche de hauteur 2,3,4,5 et 6 pour le même ensemble de clés S = 1,4,5,10,16,17,21. 2. Donnez l algorithme de l opération ArbreRechercher(x,k)

Plus en détail

Intelligence Artificielle. Dorra BEN AYED

Intelligence Artificielle. Dorra BEN AYED Intelligence Artificielle Dorra BEN AYED Chapitre 2 Résolution de problème en IA Par recherche Introduction Résoudre un pb c est chercher un chemin qui permet d aller d une situation initiale à une situation

Plus en détail

Les arbres rouges et noirs et les tas

Les arbres rouges et noirs et les tas Les arbres rouges et noirs et les tas 1. Introduction Même si les arbres AVL et les B-arbres possèdent des propriétés intéressantes, ils n en demeurent pas moins que des désavantages subsistent pour quelques

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

ITI 1521. Introduction à l informatique II

ITI 1521. Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 14 mars 2011 Résumé Listes chaînées (partie 2) Pointeur arrière Listes doublement

Plus en détail

Analyse de fichier client

Analyse de fichier client 1 Analyse de fichier client Le problème 2 entreprise avec 10 millions de clients, client identifié par un numéro de 11 111 111 à 99 999 999. fichier séquentiel représente l'historique résumé des factures

Plus en détail

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

Plus en détail

1 Définition. 2 Recherche dans un Arbre-B. 3 Insertion dans un Arbre-B. 4 Suppression dans un Arbre-B. Arbre-B

1 Définition. 2 Recherche dans un Arbre-B. 3 Insertion dans un Arbre-B. 4 Suppression dans un Arbre-B. Arbre-B Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Plan... Les arbres-b Géraldine Del Mondo, Nicolas Delestre 1 Déition 2 Recherche

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Année Universitaire 2013/2014 DST de Printemps

Année Universitaire 2013/2014 DST de Printemps Année Universitaire 2013/2014 DST de Printemps Parcours : Licence LIMI201 & LIMI211 Code UE : J1MI2013 Épreuve : Algorithmes et Programmes Date : Lundi 16 juin 2014 Heure : 16 heures 30 Durée : 2 heures

Plus en détail

Tri en Python. # on cherche k tel que a k = min(a j ) ji

Tri en Python. # on cherche k tel que a k = min(a j ) ji Tri en Python On considère ici des tableaux ou listes d entiers ou de ottants. En Python, on peut trier une liste à l aide de la méthode sort : si a est une liste d entiers ou de ottants, a.sort() modi

Plus en détail

Ebauche Rapport finale

Ebauche Rapport finale Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide

Plus en détail

Plan. Bases de données. Cours 5 : Optimisation des requêtes. Exemple pour la suite du cours. Principe d'évaluation d'une requête. Polytech Paris-Sud

Plan. Bases de données. Cours 5 : Optimisation des requêtes. Exemple pour la suite du cours. Principe d'évaluation d'une requête. Polytech Paris-Sud Plan ases de données Polytech Paris-Sud Apprentis 4 ème année Cours 5 : Optimisation des requêtes kn@lri.fr http://www.lri.fr/~kn 1 Rappels 2 Stockage 3 Indexation 4 Optimisation des opérateurs 5 Optimisation

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel)

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel) UPMC - UFR 99 Licence d informatique 205/206 Module 3I009 Cours 4 : Méthodes d accès aux données Plan Fonctions et structure des SGBD Structures physiques Stockage des données Organisation de fichiers

Plus en détail

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions Un problème concret Recherche de collisions IN 101 - Cours 05 7 octobre 2011 Le paradoxe des anniversaires dit que 365 élèves sont suffisants (en moyenne) pour avoir une collision d anniversaire, deux

Plus en détail

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données Implantation des SGBD relationnels Université de Nice Sophia-Antipolis Version 3.4 25//06 Richard Grin Plan de cette partie Nous allons étudier (très rapidement!) quelques éléments de solutions utilisés

Plus en détail

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Hélène Toussaint, juillet 2014 Sommaire 1. Efficacité du std::sort... 1 1.1. Conditions expérimentales... 1 1.2. Tableaux de

Plus en détail

Induction sur les arbres

Induction sur les arbres Induction sur les arbres Planning Motivations Comment définir les arbres? Équations récursives sur les arbres Complexité de fonctions sur les arbres Recherche dans un arbre binaire de recherche Recherche

Plus en détail

Corrigé des exercices

Corrigé des exercices hapitre 1 option informatique orrigé des eercices Arbres binaires Eercice 1 La première solution qui vient à l esprit est sans doute celle-ci : let rec profondeur p = function Nil > [] a when p = 0 > [a]

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES I-Présentation Un algorithme de recherche de sous-chaine est un type d'algorithme de recherche qui a pour objectif de trouver une chaîne de caractères

Plus en détail

Stockage et utilisation d un multi direct acyclique graphe pour PostgreSQL 8.2. Jonathan Winandy Juillet 2008

Stockage et utilisation d un multi direct acyclique graphe pour PostgreSQL 8.2. Jonathan Winandy Juillet 2008 Stockage et utilisation d un multi direct acyclique graphe pour PostgreSQL 8.2 Jonathan Winandy Juillet 2008 1 Table des matières 1 Introduction 3 2 Le modèle Nested set 3 2.1 Présentation du modèle..........................................

Plus en détail

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 GUILLAUME HANROT ET JEAN-JACQUES LÉVY On se propose de résoudre le problème de l affectation de k tâches à n employés (k > 0, n >

Plus en détail

ALICE Prise en main du logiciel

ALICE Prise en main du logiciel Alice : Manuel de prise en main 1/9 Introduction Alice est un programme qui permet de construire des mondes virtuels composés d objets en 3 dimensions. Ces objets respectent la logique de la programmation

Plus en détail

Plan. Plan. Rappel : une définition récursive des arbres. Forêts

Plan. Plan. Rappel : une définition récursive des arbres. Forêts Plan Plan Arbres et forêts Algorithme union-find Ordres sur les mots, parcours d'arbres binaires Arbres binaires de recherche Arbres et forêts Algorithme union-find Ordres sur les mots, parcours d'arbres

Plus en détail