From c5898af91d6d2b1910496987f4a2ccce8e7568a2 Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Mon, 21 Nov 2022 17:55:43 +0100 Subject: [PATCH] =?UTF-8?q?moved=20tri=20=C3=A0=20bulles=20from=20cours=5F?= =?UTF-8?q?7=20to=20cours=5F8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slides/cours_7.md | 80 ----------------------------------------------- 1 file changed, 80 deletions(-) diff --git a/slides/cours_7.md b/slides/cours_7.md index 7c8cceb..1ee5638 100644 --- a/slides/cours_7.md +++ b/slides/cours_7.md @@ -292,84 +292,4 @@ int partition(int size, int array[size], int first, int last) { ``` -# Tri à bulle (1/4) - -## Algorithme - -* Parcours du tableau et comparaison des éléments consécutifs: - - Si deux éléments consécutifs ne sont pas dans l'ordre, ils sont échangés. -* On recommence depuis le début du tableau jusqu'à avoir plus d'échanges à - faire. - -## Que peut-on dire sur le dernier élément du tableau après un parcours? - -. . . - -* Le plus grand élément est **à la fin** du tableau. - * Plus besoin de le traiter. -* A chaque parcours on s'arrête un élément plus tôt. - -# Tri à bulle (2/4) - -## Exemple - - - - -# Tri à bulle (3/4) - -## Exercice: écrire l'algorithme (poster le résultat sur matrix) - -. . . - -```C -rien tri_a_bulles(entier tableau[]) - pour i de longueur(tableau)-1 à 1: - trié = vrai - pour j de 0 à i-1: - si (tableau[j] > tableau[j+1]) - échanger(array[j], array[j+1]) - trié = faux - - si trié - retourner -``` - -# Tri à bulle (4/4) - -## Quelle est la complexité du tri à bulles? - -. . . - -* Dans le meilleurs des cas: - * Le tableau est déjà trié: $\mathcal{O}(N)$ comparaisons. -* Dans le pire des cas, $N\cdot (N-1)/2\sim\mathcal{O}(N^2)$: -$$ -\sum_{i=1}^{N-1}i\mbox{ comparaison et }3\sum_{i=1}^{N-1}i \mbox{ affectations -(swap)}\Rightarrow \mathcal{O}(N^2). -$$ -* En moyenne, $\mathcal{O}(N^2)$ ($N^2/2$ comparaisons). - -# L'algorithme à la main - -## Exercice *sur papier* - -* Trier par tri à bulles le tableau `[5, -2, 1, 3, 10, 15, 7, 4]` - -```C - - - - - - - - - - - - - -``` - -- GitLab