• Aucun résultat trouvé

(2) Quel est le but de celui-ci ? (3) D´eterminer la complexit´e de cet algorithme

N/A
N/A
Protected

Academic year: 2022

Partager "(2) Quel est le but de celui-ci ? (3) D´eterminer la complexit´e de cet algorithme"

Copied!
1
0
0

Texte intégral

(1)

BCPST Algorithme de tri 2014-2015 Exercice 1 :

On se donne l’algorithme suivant : def e t a p e b u l l e ( L ) :

e c h a n g e e f f e c t u e = F a l s e f o r i in range(len( L)−1 ) :

i f L [ i ] > L [ i + 1 ] : tmp = L [ i +1]

L [ i +1] = L [ i ] L [ i ] = tmp

e c h a n g e e f f e c t u e = True return e c h a n g e e f f e c t u e

(1) Tester la fonctionechange effectuesur la liste L= [5,1,4,2,8].

(2) Quel est le but de celui-ci ?

(3) D´eterminer la complexit´e de cet algorithme.

(4) Tester cette fonction sur la listeLjusqu’`a ce qu’elle renvoie False.

(5) En d´eduire la fonction tri bullequi prend en argument une liste L et la tri.

(6) D´eterminer la complexit´e de cet algorithme.

(7) Pourquoi l’appelle-t’ontri `a bulle? (8) Programmer et tester cette fonction.

Exercice 2 :

Dans cette question, on cherche `a ´ecrire l’algorithme de tri par insertion que l’on a d´ej`a vu en TP. Voici la description de cet algorithme par Wikipedia :

Dans l’algorithme, on parcourt le tableau `a trier du d´ebut `a la fin. Au moment o`u on consid`ere le i-`eme ´el´ement, les ´el´ements qui le pr´ec`edent sont d´ej`a tri´es. Pour faire l’ana- logie avec l’exemple du jeu de cartes, lorsqu’on est `a la i-`eme ´etape du parcours, le i-`eme

´

el´ement est la carte saisie, les ´el´ements pr´ec´edents sont la main tri´ee et les ´el´ements suivants correspondent aux cartes encore m´elang´ees sur la table.

L’objectif d’une ´etape est d’ins´erer le i-`eme ´el´ement `a sa place parmi ceux qui pr´ec`edent.

Il faut pour cela trouver o`u l’´el´ement doit ˆetre ins´er´e en le comparant aux autres, puis d´ecaler les ´el´ements afin de pouvoir effectuer l’insertion. En pratique, ces deux actions sont fr´equemment effectu´ees en une passe, qui consiste `a faire remonter l’´el´ement au fur et

`

a mesure jusqu’`a rencontrer un ´el´ement plus petit.

Exemple pour la liste [9,6,1,4,8] :

Etape´ Liste au d´epart Liste `a l’arriv´e.

Etape 1´ 9 6 1 4 8 6,9,1,4,8 Etape 2´ 6,9,1,4,8 1,6,9,4,8 Etape 3´ 1,6,9,4,8 1,4,6,9,8 Etape 4´ 1,4,6,9,8 1,4,6,8,9 (1) ´Ecrire l’algorithme enPython.

(2) ´Etudier la complexit´e de cet algorithme.

(3) Programmer et tester cette fonction.

Exercice 3 :

En utilisant une des fonctions pr´ec´edentes, proposer une m´ethode qui ´etant donn´e une liste de nombres, renvoie la m´ediane de l’ensemble des nombres d’une liste. On pourra aussi indiquer les quartiles. On programmera cette fonction en Python.

Références

Documents relatifs

Cet ´ ecart peut s’expliquer en partie par le fait que la masse du fil (qui n’a pas ´ et´ e prise en compte) n’est pas n´ egligeable par rapport ` a la masse

Pour faire l’analogie avec l’exemple du jeu de cartes, lorsqu’on est ` a la i-` eme ´ etape du parcours, le i-` eme ´ el´ ement est la carte saisie, les ´ el´ ements pr´

Le programme devra dire si l’utilisateur a trouv´ e ou pas le nombre, si l’utilisateur ne le trouve pas, le programme devra indiquer si le nombre saisi est trop grand ou trop

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

[r]

´ Ecrire un algorithme calculant la somme de deux matrices de mˆ eme taille et donner la complexit´ e en fonction du nombre de lignes et de colonnes de ces matrices.. ´ Ecrire

On dira qu’un algorithme calcule l’´ el´ ement majoritaire s’il renvoie l’´ el´ ement majoritaire s’il existe, et null sinon (on suppose que la liste de contient pas l’´