diff --git a/Algos_1/algos.c b/Algos_1/algos.c
index f5cbd3df03ffca9c0d95f6b519c3a1d669b9a83f..51713cfb513e9ee3c91c2846d1db88fae126bcf2 100644
--- a/Algos_1/algos.c
+++ b/Algos_1/algos.c
@@ -55,4 +55,34 @@ void fusion(long * A, size_t p, size_t q, size_t r){
 
 void triFusion(long * A, size_t n){
     sousTriFusion(A, 0, n);
+}
+
+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);
+        sousTriRapide(A, q+1, r);
+    }
+}
+
+void partition(long* A, size_t p, size_t r) {
+    size_t pivot = A[r-1];
+    size_t i = p;
+    long temp;
+    for (size_t j = p; j < r-2; j++) {
+        if (A[j] <= pivot) {
+            temp = A[i];
+            A[i] = A[j];
+            A[j] = temp;
+            i++;
+        }
+    }
+    temp = A[i];
+    A[i] = A[r-1];
+    A[r-1] = temp;
+    return i;
+}
+
+void triRapide(long* A, size_t n) {
+    sousTriRapide(A, 0, n);
 }
\ No newline at end of file