diff --git a/td7/td7.pdf b/td7/td7.pdf new file mode 100644 index 0000000..8272484 Binary files /dev/null and b/td7/td7.pdf differ diff --git a/td7/td7.typ b/td7/td7.typ new file mode 100644 index 0000000..b3ab491 --- /dev/null +++ b/td7/td7.typ @@ -0,0 +1,34 @@ += TD7 + +== Exercice 1 +Dans le cas où la liste est déjà triée + +== Exercice 2 +En mélangeant, on exclue les cas spécifiques qui peuvent arriver comme à la question 1. +La taille de la première partition suis alors une simple loi normale. + +== Exercice 3 +On cherche à avoir une valeure la plus proche possible de la médianne des valeurs. +On espère donc que statistiquement les erreurs des deux éléments se compensent. + +== Exercice 4 +On peut trier la liste et prendre l'élément du milieu en $O(n log n)$. +On peut tester chaque élément et compter le nombre d'éléments supérieurs et inférieurs en $O(n^2)$ + +== Exercice 5 +La complexité est constante, car la taille est fixe. + +== Exercice 6 +On fais ensuite le calcul de la médiane de ces médianes locales. + +== Exercice 7 +Chaque élément supérieur a deux éléments supérieurs. +Chaque élément inférieur a deux éléments inférieurs. +On a donc $(3n)/(5 times 2)$ éléments supérieurs et $(3n)/(5 times 2)$ éléments inférieurs. +Donc $"M5" = "M" plus.minus 15%$. + +== Exercice 8 +- M5 : à partir d'un tableau de taille 5 (ou $<=5$), renvoie sa médiane (ou sa position, ou l'envoie en position 0) en $O(1)$ +- M5m : à partir d'un tableau, renvoie le tableau des médianes des paquets de 5 (ou les expédie au début) en $O(n)$ +- répartition : à partir d'un tableau et de deux indices (et de la position d'un pivot), envoie les éléments de part et d'autre du pivot qu'on placera en conséquence en $O(n)$ +- médiane : à partir d'un tableau, renvoie la médiane : $c_n <= c_(n/5) + c_(7n/10) + theta(n) => c_n = theta(n)$