• Aucun résultat trouvé

Tris de listesConstruisez une classe liste avec :- deux champs : élément et suite, l'élément est un entier, la suite une liste ;- des méthodes de base :- ajoutT : élément, liste

N/A
N/A
Protected

Academic year: 2022

Partager "Tris de listesConstruisez une classe liste avec :- deux champs : élément et suite, l'élément est un entier, la suite une liste ;- des méthodes de base :- ajoutT : élément, liste"

Copied!
2
0
0

Texte intégral

(1)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

Document de travail pour le TD3

Tris de listes

Construisez une classe liste avec :

- deux champs : élément et suite, l'élément est un entier, la suite une liste ; - des méthodes de base :

- ajoutT : élément, liste ▶ liste - vide : élément ▶ liste - estVide : liste ▶ booléen

- tete : liste ▶ élément

- queue : liste ▶ liste - des méthodes de manipulation :

- concat : liste, liste ▶ liste - creerAleat : longueur ▶ liste - afficher : liste ▶ - des méthodes pour le tri par fusion :

- triFusion : liste ▶ liste

- fusion : liste, liste ▶ liste interclasse deux listes triées

- extPair : liste ▶ liste extrait les éléments de rang pair (à partir de 0) - extImpair : liste ▶ liste extrait les éléments de rang impair

- des méthodes pour le tri rapide :

- triRapide : liste ▶ liste

- inferieurs : liste, pivot ▶ liste extrait les éléments inférieurs au pivot - superieurs : liste, pivot ▶ liste extrait les éléments supérieurs au pivot - egaux : liste, pivot ▶ liste extrait les éléments égaux au pivot - des méthodes pour le tri par sélection :

- triSelection : liste ▶ liste

- minimum : liste, siVide ▶ élément renvoie le minimum

- supprimer : liste, élément ▶ liste renvoie la liste privée de l'élément indiqué

Heapsort (tri par tas)

Algorithme proposé par J. W. J. Williams en 1964

Vocabulaire : arbre binaire ordonné, tas binaire, tas maximum, tas minimum, tas ordonné, tri par tas (heapsort).

Considérez l'utilisation décrite ci-contre de tableaux pour stocker un tas binaire :

– chaque élément d'indice i est lié aux éléments d'indices 2i et 2i+1,

– les derniers éléments sont appelés feuilles, – n est appelé profondeur du tas.

a) Calculez (démonstration par récurrence) en fonction

TD3-1-

n=1 f

1

n=2

1

f

2

f

3

n=3

1 2 3

f

4

f

5

f

6

f

7

(2)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

de la profondeur du tas : – la longueur du tableau ;

– la limite entre les éléments qui sont des feuilles et ceux qui n'en sont pas (i.e., l'indice du dernier élément qui n'est pas une feuille).

b) Sur un tas binaire, écrivez l'algorithme d'un traitement récursif propMax(i) permettant d'assurer qu'à partir de l'indice i chaque élément du tableau est supérieur à ses deux éléments liés (d'indices 2i et 2i+1).

Attention, il ne s'agit pas d'un

arbre binaire ordonné : il n'y a aucune contrainte sur l'ordre relatif des éléments d'indices 2i et 2i+1.

La méthode propMax suppose que la fin du tableau sur lequel elle travaille (de l'indice i+1 à l'indice max) vérifie la propriété caractéristique des tas binaires maximum et étend cette propriété d'un cran vers la gauche (de i à max). Cette méthode est récursive.

c) Ecrivez un traitement itératif, tasMax(), permettant d'assurer la propriété propMax(i) sur tout le tableau : vous obtenez un tas maximum. La propriété propMax(i) qui porte sur les éléments liés à l'élément d'indice i est vérifiée pour toutes les feuilles.

Remarque : par des traitements similaires, vous pouvez obtenir un tas minimum (chaque élément d'indice i est inférieur à ses deux éléments liés, d'indices 2i et 2i+1).

d) Ecrivez un traitement itératif, triMax() qui trie le tableau T en :

– utilisant la méthode tasMax() pour construire un tas binaire maximum,

– déplaçant le plus grand élément du tableau (le premier élément du tas binaire maximum) en fin de tableau,

– et en reprenant la même démarche sur le tableau privé de son dernier élément.

TD3-2-

? la propriété des tas maxi est vérifiée

i max

? la propriété des tas maxi est vérifiée

i max

?

la propriété des tas maxi est vérifiée (sur les feuilles)

max

tas maximum : la propriété des tas maximum est vérifiée partout

max max/2

Références

Documents relatifs

Le tableau de variation d’une fonction f résume les variations de la fonction en partageant l’ensemble de définition de la fonction en intervalles sur lesquels la fonc- tion

Pré-requis : l’objectif des premières séances de TP est de faire le point sur des fonctionnalités impor- tantes de Scilab qui ont été vues en première année.. Je vous invite

Ces deux hormones sont obtenues par fixation de l'élément iode sur une protéine formée par condensation de plusieurs molécules de tyrosine, un acide -aminé.. L'iode

[r]

b) Sur un tas binaire, écrivez l'algorithme d'un traitement récursif propMax(i) permettant d'assurer qu'à partir de l'indice i chaque élément du tableau est

Fonctionnement d'une pile La structure de pile permet de retrouver les éléments dans l'ordre inverse de 1 Une structure de file permet de retrouver les éléments dans l'ordre où

BTS CG 1ére Année Fiche n°1 : Informations chiffrées Calculer et utiliser une proportion1. Ce qu’il faut

• Les piles sont utilisées pour implanter les appels de procédures (cf. pile système). • En particulier, les procédures récursives gèrent une pile