diff --git a/Algos_1/Lib/main.c b/Algos_1/Lib/main.c
index ba6e932993dd06bf78dc1bba4716eb83177d73f0..a93ba238fcba8d7323947ae5b31296476725af84 100644
--- a/Algos_1/Lib/main.c
+++ b/Algos_1/Lib/main.c
@@ -1,6 +1,7 @@
 #include "../Tris/triInsertion.h"
 #include "../Tris/triFusion.h"
 #include "../Tris/triRapide.h"
+#include "../Tris/triBulle.h"
 #include "../Lib/utils.h"
 
 int main(int argc, char **argv){
@@ -63,6 +64,22 @@ int main(int argc, char **argv){
         printf("\n");
         free(tab);
     }
+    else if((strcmp(argv[1], "--bulle")== 0) || strcmp(argv[1], "-b")== 0){
+        int n= 0;
+        long *tab = readToTab(argv[2], &n);
+        printf("Base      : ");
+        for(int i  = 0; i<n; i++){
+            printf("%ld,", tab[i]);
+        }
+        printf("\n");
+        triBulle(tab, n);
+        printf("Bulle    : ");
+        for(int i  = 0; i<n; i++){
+            printf("%ld,", tab[i]);
+        }
+        printf("\n");
+        free(tab);
+    }
     else if (strcmp(argv[1], "-a") == 0)
     {
         int n= 0;
diff --git a/Algos_1/Tris/triBulle.c b/Algos_1/Tris/triBulle.c
new file mode 100644
index 0000000000000000000000000000000000000000..c3eaa3d0cdfd589b8d36bda547ec7f1ab284a8b8
--- /dev/null
+++ b/Algos_1/Tris/triBulle.c
@@ -0,0 +1,14 @@
+#include "triBulle.h"
+
+void triBulle(long* A, size_t n){
+    for(int I = n - 2;I >= 0; I--) {
+            for(int J = 0; J <= I; J++) {
+                if(A[J + 1] < A[J]) {
+                    int t = A[J + 1];
+                    A[J + 1] = A[J];
+                    A[J] = t;
+                }
+            }
+        } 
+
+}
\ No newline at end of file
diff --git a/Algos_1/Tris/triBulle.h b/Algos_1/Tris/triBulle.h
new file mode 100644
index 0000000000000000000000000000000000000000..3224f6932e87887b5d5dbd282544ee282b6c197a
--- /dev/null
+++ b/Algos_1/Tris/triBulle.h
@@ -0,0 +1,18 @@
+#ifndef triBulle_h
+#define triBulle_h
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+
+#include "../Lib/utils.h"
+
+void triBulle(long* A, size_t n);
+
+#endif
\ No newline at end of file
diff --git a/Algos_1/makefile b/Algos_1/makefile
index a0fbfc04ffc206aeca04ce66faaf7a77daac460c..299e3cfaff6a1186c42becb663481a1063cfb3b2 100644
--- a/Algos_1/makefile
+++ b/Algos_1/makefile
@@ -1,11 +1,14 @@
 all: tri
 
-tri: Lib/main.c Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o Lib/utils.o
-	gcc -Wall Lib/main.c Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o Lib/utils.o -Wall -o tri
+tri: Lib/main.c Tris/triBulle.o Tris/triInsertion.o Tris/triFusion.o Tris/triRapide.o  Lib/utils.o
+	gcc -Wall Lib/main.c Tris/triInsertion.o Tris/triFusion.o  Tris/triBulle.o Tris/triRapide.o Lib/utils.o -Wall -o tri
 
 insertion: Tris/triInsertion.c Tris/triInsertion.h
 	gcc -c Tris/triInsertion.c Tris/triInsertion.h -Wall
 
+bulle:     Tris/triBulle.c Tris/triBulle.h
+	gcc -c Tris/triBulle.c Tris/triBulle.h -Wall
+
 fusion: Tris/triFusion.c Tris/triFusion.h
 	gcc -c Tris/triFusion.c Tris/triFusion.h -Wall
 
@@ -16,4 +19,4 @@ utils: Lib/utils.c Lib/utils.h
 	gcc -c Lib/utils.c Lib/utils.h -Wall
 
 clear:
-	rm *.o
\ No newline at end of file
+	rm Tris/*.o
\ No newline at end of file