diff --git a/TP1/main.c b/TP1/main.c
index 603dad612b3d0a74e93ecff63acae99c67462f46..8b03e2fec88d3284aa059b6a394b596c31f87f1e 100644
--- a/TP1/main.c
+++ b/TP1/main.c
@@ -5,16 +5,23 @@
 
 
 int main() {
-  long T1[5] ={3,2,5,1,4} ;
+  printf("Tri Insertion: \n");
+  long triIns[8] ={3,2,8,4,1,6,7,5};
+  affichertab(triIns,8);
+  triInsertion(triIns,8);
+  affichertab(triIns,8);
 
-  long T2[8] ={3,2,8,4,1,6,7,5} ;
+  printf("Tri Rapide: \n");
+  long triRap[8] ={3,2,8,4,1,6,7,5};
+  affichertab(triRap,8);
+  triRapide(triRap, 8);
+  affichertab(triRap,8);
 
-  affichertab(T1,5);
-  printf("\n");
-
-  triInsertion(T1,5);
-
-  affichertab(T1,5);
+  printf("Tri Fusion: \n");
+  long triFus[8] ={3,2,8,4,1,6,7,5};
+  affichertab(triFus,8);
+  triFusion(triFus, 8);
+  affichertab(triFus,8);
 
   return 0;
 }
diff --git a/TP1/tris.c b/TP1/tris.c
index 75e4a04f20db097e6d59de18b6db6a100f2421e0..f4037e4c10e06ab2a0bbd9a8fb9ba78174e4ae17 100644
--- a/TP1/tris.c
+++ b/TP1/tris.c
@@ -17,23 +17,20 @@ void triInsertion(long* A, size_t n) {
 
 void triFusion(long* A, size_t size) {
   sousTriFusion(A, 0, size);
-  printf("Tri fusion\n");
 }
 
 void sousTriFusion(long* A, size_t first, size_t size) {
-    if(first<size-1){
+    if(first+1 <size){ // p < r - 1
         size_t middle = floor((first+size)/2);
         sousTriFusion(A, first, middle);
         sousTriFusion(A, middle, size);
         fusion(A, first, middle, size);
     }
-    printf("Sous Tri fusion\n");
 }
 
 void copySousTable(long* mainT, long* underT, size_t id, size_t size) {
-  size_t i = 0;
-  for(; id < size; ++id) {
-    mainT[id] = underT[i];
+  for(size_t i = id; i < id+size; ++i) {
+    underT[i-id] = mainT[i];
   }
 }
 
@@ -46,11 +43,9 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
 
     long* ag = malloc(sizeof(long) * n1);
     long* ad = malloc(sizeof(long) * n2);
-    printf("Malloc\n");
 
     copySousTable(A, ag, first, n1);
     copySousTable(A, ad, middle, n2);
-    printf("CopySousTable\n");
 
     int i = first;
 
@@ -68,7 +63,7 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
         indg++;
       }
       else {
-        A[i] = ag[indg];
+        A[i] = ad[indd];
         indd++;
       }
       ++i;
@@ -78,6 +73,7 @@ void fusion(long* A, size_t first, size_t middle, size_t size) {
     free(ad);
 }
 
+<<<<<<< HEAD
 void triRapide(long* A, size_t n){
     soustriRapide(A,0,n-1);
 } 
@@ -111,4 +107,36 @@ void permuter(long* A,size_t i,size_t j){
 
 // 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
+ 
+=======
+void triRapide(long* A, size_t n) {
+    sousTriRapide(A,0,n);
+}
+
+void sousTriRapide(long* A, size_t first, size_t size){
+    if(first+1 < size){
+        size_t middle = partition(A,first,size);
+        sousTriRapide(A,first,middle);
+        sousTriRapide(A,middle+1,size);
+    }
+}
+
+size_t partition(long* A, size_t first, size_t size) {
+    long pivot = A[size-1];
+    size_t i = first;
+    for(int j = first; j+2 <= size; j++){
+        if(A[j] <= pivot){
+            permuter(A,i,j);
+            i++;
+        }
+    }
+    permuter(A,i,size-1);
+    return i;
+}
+
+void permuter(long* A,size_t i,size_t j) {
+    long inter = A[i];
+    A[i] = A[j];
+    A[j] = inter;
+}
+>>>>>>> f61484c65f74d3b49ca5a7a457807526ac75448b
diff --git a/TP1/tris.h b/TP1/tris.h
index bdcb99e8b60705c54c1abb4df8c0e9c19bad6a56..9c8ed8f448e0eca0f6529fcb430242d84d7a4c4d 100644
--- a/TP1/tris.h
+++ b/TP1/tris.h
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 #ifndef TRIS_H
 #define TRIS_H
 #include <stdint.h>
@@ -12,3 +13,22 @@ 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
+=======
+#ifndef TRIS_H
+#define TRIS_H
+#include <stdint.h>
+#include <stdlib.h>
+
+void triInsertion(long* A, size_t n);
+
+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 triRapide(long* A, size_t n);
+void sousTriRapide(long* A, size_t first, size_t size);
+size_t partition(long* A, size_t first, size_t size);
+void permuter(long* A,size_t i,size_t j);
+
+#endif //TRIS_H
+>>>>>>> f61484c65f74d3b49ca5a7a457807526ac75448b
diff --git a/TP1/utils.c b/TP1/utils.c
index df560764a6b806fd80a4123d6664b2804537493a..be9137a01d4d17a98d52ffb97a0045de94f44ea9 100644
--- a/TP1/utils.c
+++ b/TP1/utils.c
@@ -1,9 +1,11 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include "utils.h" 
+#include "utils.h"
 
 void affichertab(long* T, int s){
-    for(int i = 0; i < s; i++){
-        printf("%d \n",T[i]);
-    } 
-} 
\ No newline at end of file
+    printf("[ ");
+    for(int i = 0; i < s-1; i++){
+        printf("%d , ",T[i]);
+    }
+    printf("%d ]\n",T[s-1]);
+}
diff --git a/main.c b/main.c
deleted file mode 100644
index 60765850e8a1f0398515296cbfba8c876b639153..0000000000000000000000000000000000000000
--- a/main.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-int main( int argc, const char* argv[] )
-{
-    
-}