diff --git a/TP1/main b/TP1/main
index 7ee5fdf9813d85b07241aeccf17b3b50a3794140..d1487facee325fdb0d5f18151a49b23445190c91 100755
Binary files a/TP1/main and b/TP1/main differ
diff --git a/TP1/tris.c b/TP1/tris.c
index 277e391b806ae698f297fbf47808c5dd8ef6d153..75e4a04f20db097e6d59de18b6db6a100f2421e0 100644
--- a/TP1/tris.c
+++ b/TP1/tris.c
@@ -77,3 +77,38 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
     free(ag);
     free(ad);
 }
+
+void triRapide(long* A, size_t n){
+    soustriRapide(A,0,n-1);
+} 
+
+void soustriRapide( long* A, size_t p, size_t r){
+    if(p<r-1){
+        size_t q = partition(A,p,r);
+        soustriRapide(A,p,q-1);
+        soustriRapide(A,q+1,r);
+    } 
+}
+
+size_t partition(long* A, size_t p, size_t r){
+    long pivot = A[r-1];
+    size_t i = p;
+    for(int j = p; j <= r-2; j++){
+        if(A[j] <= pivot){
+            permuter(A,i,j);
+            i++;
+        } 
+    }
+    permuter(A,i,r-1);
+    return i;  
+}
+
+void permuter(long* A,size_t i,size_t j){
+    long inter = A[i];
+    A[i] = A[j];
+    A[j] = inter;   
+} 
+
+// voila le début de tri rapide si j'ai pas le temp de le finir 
+// ni de le testé 
+ 
\ No newline at end of file
diff --git a/TP1/tris.h b/TP1/tris.h
index 5b7b1c2dbeb952cfc194b2369ea0dc4206f980d1..bdcb99e8b60705c54c1abb4df8c0e9c19bad6a56 100644
--- a/TP1/tris.h
+++ b/TP1/tris.h
@@ -9,4 +9,6 @@ void triFusion(long* A, size_t size);
 void sousTriFusion(long* A, size_t first, size_t size);
 void fusion(long* A, size_t first, size_t middle, size_t size);
 
+void soustriRapide( long* A, size_t p, size_t r);
+
 #endif //TRIS_H
diff --git a/TP1/tris.o b/TP1/tris.o
new file mode 100644
index 0000000000000000000000000000000000000000..a60fc51aa905726e26b581fcbdde9c80d5f4adfe
Binary files /dev/null and b/TP1/tris.o differ
diff --git a/TP1/utils.o b/TP1/utils.o
new file mode 100644
index 0000000000000000000000000000000000000000..4ff1808805cf14b0b2307154829db41bcb7d719c
Binary files /dev/null and b/TP1/utils.o differ