Vous êtes sur la page 1sur 2

Algorithmique et Structures de Donnes TD n 3

Licence Informatique 2me anne Universit de Nice-Sophia Antipolis

Tri par Insertion : rvision


1. On modie une valeur du tableau (par exemple T [5]). crivez un algorithme qui retrie le tableau. Votre algorithme doit tre simple et ecace. Donnez sa complexit 2. On modie une valeur du tableau. Appelez directement l'algorithme de tri par insertion. Quelle est la complexit obtenue ?

On considre T un tableau tri de n entiers.

Quelle est la complexit du tri par insertion dans le pire des cas ? Et dans le meilleur ?

Tri par Slection


rechercher le plus petit lment du tableau, et l'changer avec l'lment d'indice 1 ; rechercher le second plus petit lment du tableau, et l'changer avec l'lment d'indice 2 ; continuer de cette faon jusqu' ce que le tableau soit entirement tri.

Sur un tableau de n lments (numrots de 1 n), le principe du tri par slection est le suivant :

crivez le pseudo-code correspondant cet algorithme. Donnez sa complexit dans le pire des cas et dans le meilleur. Montrez que l'invariant de boucle suivant permet de prouver la correction de l'algorithme : la n de l'tape i, le tableau est une permutation du tableau initial et les i premiers lments du tableau concident avec les i premiers lments du tableau tri.

Tri par Fusion

Soient T1 un tableau de n1 lments tris par ordre croissant et T2 un tableau de n2 lments tris par ordre croissant. 1. crivez un algorithme qui construit le tableau T constitu des lments de T1 et de T2 , tris par ordre croissant. 2. Donnez la complexit de ces algorithmes. Considrez que vous avez un tableau de taille 16. Comment pouvez-vous appliquer le principe prcdent pour obtenir un algorithme ecace de tri ? crivez le pseudo-code de cet algorithme. Gnralisez cet algorithme toute taille de tableau. Donnez sa complexit.

Tri de Matrice
1

Proposez une mthode pour trier les lments d'une matrice.

Structure de Tas
la dirence maximale de profondeur entre deux feuilles est de 1 (i.e. toutes les feuilles se trouvent sur la

Un tas descendant est un arbre binaire vriant les proprits suivantes : dernire ou sur l'avant-dernire ligne) ;

les feuilles de profondeur maximale sont "tasses" sur la gauche. chaque nud est de valeur infrieure celle de ces deux ls.

Un tas ou un arbre binaire presque complet peut tre stock dans un tableau, en posant que les deux descendants de l'lment d'indice n sont les lments d'indices 2n et 2n + 1 (pour un tableau indic partir de 1). En d'autres termes, les nuds de l'arbre sont placs dans le tableau ligne par ligne, chaque ligne tant dcrite de gauche droite. L'insertion d'un lment dans un tas se fait de la faon suivante : on place l'lment sur la premire case libre et on change l'lment et son pre quand que ce dernier est suprieur et qu'il existe. Dessinez un tas correspondant au tableau T : [2, 3, 8, 5, 1, 7, 4, 6] L'opration de tamisage consiste changer la racine avec le plus petit de ses ls, et ainsi de suite rcursivement jusqu' ce qu'elle soit sa place. Remplacez la racine du tas par la valeur 7 et dtaillez le tamisage. Appliquez l'algorithme suivant pour trier le tableau T (on fera des dessins successifs montrant l'volution du tas) :
on commence par transformer le tableau en tas descendant; on change la racine avec le dernier lment du tableau, et on restreint le tas en ne touchant plus au dernier

lment, c'est--dire l'ancienne racine ; remplac par un tableau tri.

on tamise la racine dans le nouveau tas, et on rpte l'opration sur le tas restreint jusqu' l'avoir vid et

Est-ce que cet algorithme trie le tableau T de faon croissante ou dcroissante ?