• Aucun résultat trouvé

Exercice 1. Tri par segmentation

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1. Tri par segmentation"

Copied!
1
0
0

Texte intégral

(1)

L3 Informatique Année 2021 2022

UE ALGO5 TD2 Séance 3 : Tri par segmentation

Objectifs

À la n de cette séance, vous devriez être capable de :

structurer un algorithme en utilisant des sous fonctions ayant une signature et des pré- et post-conditions ; spécier et prouver des invariants de boucle ;

écrire des algorithmes récursifs comme le tri par segmentation.

Exercice 1. Tri par segmentation

On rappelle le schéma algorithmique du tri par segmentation :

1 TriSegmentation(T):

sila tailledeT est>1 alors

3 Soitpune valeur«pivot»

Partitionner T en T1, T2 t.q.:

5 −T1contient les valeurs deT inférieures ou égales àp

−T2contient les valeurs deT supérieures àp

7 TriSegmentation(T1) TriSegmentation(T2)

Réalisation

Q 1. Le partitionnement sera réalisé par une procédure intermédiaire nomméePartition. Donner la spécication de cette procédure (signature, pré- et post-conditions).

Q 2. Donner une réalisation deTriSegmentationen utilisantPartition.

Q 3. Donner une réalisation de Partition : commencer par exprimer sous forme de schéma l'invariant de la boucle principale.

Analyse

Q 4. Quel est le coût dans le pire cas, dans le meilleur cas de Partition? de TriSegmentation? Donner des exemples (de taille 10) de pire et meilleurs cas.

Q 5. Donner le coût dePartition(T)dans le cas où tous les éléments de T ont la même valeur. Proposer une correction dePartitionsusceptible d'améliorer ce coût.

Références

Documents relatifs

Donner la spécication de cette procédure (signature, pré- et

À la n de cette séance, vous devriez être capable de : adapter et généraliser des algorithmes vus en cours ;.. spécier des spécications (pré- et post- conditions) de fonctions ;

La dichotomie (couper en deux) est un processus de recherche où à chaque étape l’espace de recherche se réduit à l’une des parties. Pour exécuter ce processus il faut que

[r]

Question : Est-il possible de trier un tableau de n ´el´ements en moins de n · log( n ) op´erations dans le pire cas. Non si on n’utilise que des comparaisons 2 `a 2 et sans

Lorsqu’on veut trier un très petit nombre d’éléments, il est plus simple d’écrire directement les comparaisons à effectuer que de se lancer dans la conception d’un

Le tri par insertion est quant à lui très utilisé pour des listes de petites tailles (presque déjà triées). C’est le cas de la méthode sort sur python qui utilise

On souhaite comparer les temps d’exécution du tri insertion et du tri fusion sur deux types de listes : une liste de nombres pris au hasard et une liste de nombre