diff --git a/TP7/analyse-tris/analyse_tris.csv b/TP7/analyse-tris/analyse_tris.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b679da25df8ac52db9fc3d28e2673e75f7f28072
--- /dev/null
+++ b/TP7/analyse-tris/analyse_tris.csv
@@ -0,0 +1,102 @@
+taille;"tri séléction";"tri insertion"
+  0;    0.00;    0.00
+  1;    0.00;    0.00
+  2;    1.00;    1.00
+  3;    3.00;    2.62
+  4;    6.00;    4.90
+  5;   10.00;    7.54
+  6;   15.00;   10.90
+  7;   21.00;   14.56
+  8;   28.00;   19.96
+  9;   36.00;   23.84
+ 10;   45.00;   29.12
+ 11;   55.00;   35.24
+ 12;   66.00;   42.72
+ 13;   78.00;   48.12
+ 14;   91.00;   55.06
+ 15;  105.00;   64.22
+ 16;  120.00;   72.72
+ 17;  136.00;   82.22
+ 18;  153.00;   91.08
+ 19;  171.00;  100.86
+ 20;  190.00;  109.80
+ 21;  210.00;  116.96
+ 22;  231.00;  136.72
+ 23;  253.00;  142.74
+ 24;  276.00;  154.70
+ 25;  300.00;  172.60
+ 26;  325.00;  185.50
+ 27;  351.00;  197.92
+ 28;  378.00;  213.90
+ 29;  406.00;  228.38
+ 30;  435.00;  242.74
+ 31;  465.00;  264.10
+ 32;  496.00;  273.96
+ 33;  528.00;  297.28
+ 34;  561.00;  308.94
+ 35;  595.00;  328.56
+ 36;  630.00;  347.48
+ 37;  666.00;  369.30
+ 38;  703.00;  386.26
+ 39;  741.00;  417.00
+ 40;  780.00;  429.88
+ 41;  820.00;  438.68
+ 42;  861.00;  476.60
+ 43;  903.00;  490.30
+ 44;  946.00;  514.28
+ 45;  990.00;  535.98
+ 46; 1035.00;  546.88
+ 47; 1081.00;  598.08
+ 48; 1128.00;  605.58
+ 49; 1176.00;  639.08
+ 50; 1225.00;  651.50
+ 51; 1275.00;  689.16
+ 52; 1326.00;  712.04
+ 53; 1378.00;  746.86
+ 54; 1431.00;  768.66
+ 55; 1485.00;  794.12
+ 56; 1540.00;  819.04
+ 57; 1596.00;  854.84
+ 58; 1653.00;  890.52
+ 59; 1711.00;  931.04
+ 60; 1770.00;  951.98
+ 61; 1830.00;  968.66
+ 62; 1891.00; 1008.38
+ 63; 1953.00; 1037.84
+ 64; 2016.00; 1090.42
+ 65; 2080.00; 1080.92
+ 66; 2145.00; 1127.48
+ 67; 2211.00; 1188.08
+ 68; 2278.00; 1207.70
+ 69; 2346.00; 1225.60
+ 70; 2415.00; 1281.40
+ 71; 2485.00; 1313.32
+ 72; 2556.00; 1353.52
+ 73; 2628.00; 1379.60
+ 74; 2701.00; 1422.80
+ 75; 2775.00; 1469.98
+ 76; 2850.00; 1506.84
+ 77; 2926.00; 1535.16
+ 78; 3003.00; 1578.44
+ 79; 3081.00; 1621.58
+ 80; 3160.00; 1655.34
+ 81; 3240.00; 1699.60
+ 82; 3321.00; 1717.26
+ 83; 3403.00; 1794.74
+ 84; 3486.00; 1826.90
+ 85; 3570.00; 1874.66
+ 86; 3655.00; 1931.14
+ 87; 3741.00; 1935.44
+ 88; 3828.00; 2021.40
+ 89; 3916.00; 2035.10
+ 90; 4005.00; 2128.82
+ 91; 4095.00; 2130.34
+ 92; 4186.00; 2177.56
+ 93; 4278.00; 2271.38
+ 94; 4371.00; 2261.42
+ 95; 4465.00; 2299.68
+ 96; 4560.00; 2374.12
+ 97; 4656.00; 2422.98
+ 98; 4753.00; 2486.74
+ 99; 4851.00; 2532.82
+100; 4950.00; 2560.18
diff --git a/TP7/analyse-tris/analyse_tris2.py b/TP7/analyse-tris/analyse_tris2.py
new file mode 100755
index 0000000000000000000000000000000000000000..be9e9189425a29f967e009520964646b6e8e78b1
--- /dev/null
+++ b/TP7/analyse-tris/analyse_tris2.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+"""
+:mod:`analyse_tris` module
+:author: FIL - Faculté des Sciences et Technologies - Univ. Lille <http://portail.fil.univ-lille1.fr>_
+:date: janvier 2017
+:dernières révisions: février 2018, février 2019
+
+Analyse empirique des tris
+
+"""
+from random import shuffle
+from typing import Callable
+from compare import compare
+from ap_decorators import count
+from tris import *
+
+
+################################################
+#  ANALYSE EMPIRIQUE DES TRIS                  #
+################################################
+
+# ajout d'un compteur à la fonction compare
+compare = count(compare)
+
+
+def analyser_tri(tri: Callable[[list[T], Callable[[T, T], int]], NoneType],
+                 nbre_essais: int,
+                 taille: int) -> float:
+    """
+    renvoie: le nombre moyen de comparaisons effectuées par l'algo tri
+         pour trier des listes de taille t, la moyenne étant calculée
+         sur n listes aléatoires.
+    précondition: n > 0, t >= 0, la fonc
+    """
+    res = 0
+    for i in range(nbre_essais):
+        compare.counter = 0
+        l = [k for k in range(taille)]
+        shuffle(l)
+        tri(l, compare)
+        res += compare.counter
+    return res / nbre_essais
+
+
+    
+if (__name__ == '__main__'):
+    from matplotlib import pyplot as plt
+    
+    # Calcul de nombres moyens de comparaison pour des listes
+    # de tailles comprises entre 0 et TAILLE_MAX
+    NB_ESSAIS = 50
+    TAILLE_MAX = 100
+    c_select = [0.0] * (TAILLE_MAX + 1)
+    c_insert = [0.0] * (TAILLE_MAX + 1)
+    c_sort = [0.0] * (TAILLE_MAX + 1)
+    
+    
+    for t in range(TAILLE_MAX + 1):
+        c_select[t] = analyser_tri(tri_select, 1, t)
+        # inutile de moyenner pour le tri par sélection
+        c_insert[t] = analyser_tri(tri_insert, NB_ESSAIS, t)
+        c_sort[t] = analyser_tri(tri_sort, 1, t)
+
+    # Sauvegarde des données calculées dans un fichier au format CSV
+    prem_ligne = 'taille;"tri séléction";"tri insertion"\n'
+    ligne = '{:3d};{:8.2f};{:8.2f}\n'
+    with open('analyse_tris.csv', 'wt', encoding='utf8') as sortie:
+        sortie.write(prem_ligne)
+        for t in range(TAILLE_MAX + 1):
+            sortie.write(ligne.format(t,
+                                      c_select[t],
+                                      c_insert[t],
+                                      c_sort))
+
+    # Représentation graphique
+    plt.plot(list(range(TAILLE_MAX + 1)), c_select, 'b.', label='Tri sélection')
+    plt.plot(list(range(TAILLE_MAX + 1)), c_insert, 'r.', label='Tri insertion')
+    plt.plot(list(range(TAILLE_MAX + 1)), c_sort, 'g.', label='Tri sort')
+    plt.title('Tris : nbre de comparaisons')
+    plt.legend()
+    plt.xlabel('n = taille des listes')
+    plt.ylabel('c(n) = nbre de comparaisons')
+    plt.savefig('tris_nbcomp.png')
+    plt.show()
+
+
diff --git a/TP7/analyse-tris/tp7.py b/TP7/analyse-tris/tp7.py
new file mode 100644
index 0000000000000000000000000000000000000000..9b15b67cb350bafc47d289622056f68240f5aa9e
--- /dev/null
+++ b/TP7/analyse-tris/tp7.py
@@ -0,0 +1,31 @@
+# TP7 AP Analyse empirique des tris
+# Belkacemi Melissa
+# 13/03/2024
+
+#Préliminaires
+
+# l'expression  l=[k for k in range(n)] permet de construire en compréhension une liste des entiers de 0 à n-1
+from random import shuffle
+
+def liste_alea(n:int)->list[int]:
+    """Renvoie une liste de longueur n contenant les entiers de 0 à n-1 mélangés
+
+    Précondition : n>=0
+    Exemple(s) :
+    $$$ liste_alea(0)
+    []
+    $$$ liste_alea(1)
+    [0]
+
+    """
+    l=[k for k in range(n)]
+    shuffle(l)
+    return l
+#Représentation graphique avec Matplotlib
+import matplotlib.pyplot as plt
+
+#Compter les comparaisons
+from ap_decorators import count
+from compare import compare
+
+nvle_compare = count(compare)
\ No newline at end of file
diff --git a/TP7/analyse-tris/tris.py b/TP7/analyse-tris/tris.py
old mode 100644
new mode 100755
index 18df74065a465ff7025f8fc807a4bd08958869a5..66cee9a364ad242c9cf635662b835f0a5aa9b583
--- a/TP7/analyse-tris/tris.py
+++ b/TP7/analyse-tris/tris.py
@@ -186,6 +186,32 @@ def tri_insert(liste: list[T], comp: Callable[[T, T], int] = compare) -> NoneTyp
         inserer(liste, i, comp=comp)
         # alors la tranche liste[0:i+1] est triée
     # à l'issue de l'itération la tranche liste[0:n] est triée
+    
+from functools import cmp_to_key
+
+def tri_sort(liste: list[T], comp: Callable[[T, T], int] = compare) -> NoneType:
+    """modifie la liste liste en triant ses éléments selon l'ordre défini par comp en utilisant sort
+
+    Précondition : 
+    Exemple(s) :
+    $$$ liste = [3, 1, 4, 1, 5, 9, 2]
+    $$$ tri_sort(liste)
+    $$$ liste == [1, 1, 2, 3, 4, 5, 9]
+    True
+    $$$ from random import randrange
+    $$$ l1 = [randrange(1000) for k in range(randrange(100))]
+    $$$ l2 = l1.copy()
+    $$$ tri_sort(l2)
+    $$$ est_trie(l2)
+    True
+    $$$ all(l1.count(elt) == l2.count(elt) for elt in l1)
+    True
+    $$$ all(l1.count(elt) == l2.count(elt) for elt in l2)
+    True 
+
+    """
+    liste.sort(key=cmp_to_key(comp))
+    
 
 
 if (__name__ == '__main__'):
diff --git a/TP7/analyse-tris/tris_nbcomp.png b/TP7/analyse-tris/tris_nbcomp.png
new file mode 100644
index 0000000000000000000000000000000000000000..e17e8c6a3f44b28019c7fde9ec262bdc4a6a2042
Binary files /dev/null and b/TP7/analyse-tris/tris_nbcomp.png differ