diff --git a/src/main/java/fr/univamu/sorting/App.java b/src/main/java/fr/univamu/sorting/App.java
index 40c78d1a84da56424b6fdf4133993096f2f16161..57baeef9d788e80bf71b418f06a489cdde2fb633 100644
--- a/src/main/java/fr/univamu/sorting/App.java
+++ b/src/main/java/fr/univamu/sorting/App.java
@@ -12,6 +12,7 @@ public class App {
         .map(String::valueOf)
         .collect(Collectors.joining(",","[","]"))
     );
+
     System.exit(0);
   }
 }
diff --git a/src/main/java/fr/univamu/sorting/Sortable.java b/src/main/java/fr/univamu/sorting/Sortable.java
new file mode 100644
index 0000000000000000000000000000000000000000..e96f6663eb6e7a500dc6b9dcefbfa244840f97d0
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/Sortable.java
@@ -0,0 +1,10 @@
+package fr.univamu.sorting;
+
+import java.util.List;
+
+public interface Sortable {
+    int get(int index);
+    int size();
+    void swap(int index1, int index2);
+    int compare(int index1, int index2);
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntArray.java b/src/main/java/fr/univamu/sorting/SortableIntArray.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa54ebb7cd4e70db071c3b8c5162ef61bf7e11b2
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/SortableIntArray.java
@@ -0,0 +1,31 @@
+package fr.univamu.sorting;
+
+public class SortableIntArray implements Sortable {
+    private int[] Array;
+
+    public SortableIntArray(int [] Array){
+        this.Array=Array;
+    }
+
+    public int[] GetArray(){
+        return this.Array;
+    }
+
+    public int size(){
+        return this.Array.length;
+    }
+    public int get(int index){
+        return this.Array[index];
+    }
+    public void swap(int index1, int index2){
+        int a = this.Array[index1];
+        int b = this.Array[index2];
+        this.Array[index1] = b;
+        this.Array[index2] = a;
+    }
+
+    public int compare(int index1, int index2){
+        return this.Array[index1]-this.Array[index2];
+    }
+
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntList.java b/src/main/java/fr/univamu/sorting/SortableIntList.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e17a63ef3c54d600e43794375c56b21b442e4d0
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/SortableIntList.java
@@ -0,0 +1,37 @@
+package fr.univamu.sorting;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+public class SortableIntList implements Sortable {
+    private List<Integer> list;
+
+    public SortableIntList(List<Integer> list){
+        this.list = list;
+    }
+
+    public List<Integer> GetList(){
+        return this.list;
+    }
+
+    public int get(int index){
+        return this.list.get(index);
+    }
+
+    public int size(){
+        return this.list.size();
+    }
+
+    public void swap(int index1, int index2){
+        int a = this.list.get(index1);
+        int b = this.list.get(index2);
+        this.list.add(index2,a);
+        this.list.add(index1,b);
+    }
+
+    public int compare(int index1, int index2){
+        return this.list.get(index1)-this.list.get(index2);
+    }
+}
diff --git a/src/main/java/fr/univamu/sorting/insertionSort.java b/src/main/java/fr/univamu/sorting/insertionSort.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e5a15c4bbf26cd3927a27fa79e7df4269f6d117
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/insertionSort.java
@@ -0,0 +1,20 @@
+package fr.univamu.sorting;
+
+public class insertionSort {
+    private Sortable Mustsort;
+
+    public insertionSort(Sortable Mustsort){
+        this.Mustsort = Mustsort;
+    }
+
+    public Sortable GetSortable(){
+        return this.Mustsort;
+    }
+    public void sort() {
+        int i = 0;
+        while (i<Mustsort.size()-1){
+            int x = Mustsort.get(i);
+
+        }
+    }
+}
diff --git a/src/main/java/fr/univamu/sorting/quicksortSort.java b/src/main/java/fr/univamu/sorting/quicksortSort.java
new file mode 100644
index 0000000000000000000000000000000000000000..911edab707a8ca11bd91a5d6004f5db3f57ac1d9
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/quicksortSort.java
@@ -0,0 +1,86 @@
+package fr.univamu.sorting;
+
+import java.util.List;
+
+public class quicksortSort {
+    private Sortable Mustsort;
+
+    public quicksortSort(Sortable Mustsort){
+        this.Mustsort = Mustsort;
+    }
+
+    public Sortable GetSortable(){
+        return this.Mustsort;
+    }
+
+    private List<List<Integer>> split(List<Integer> Tosplit){
+        int a = Tosplit.get(Tosplit.size()-1);
+        List<Integer> A = List.of();
+        List<Integer> B = List.of();
+        List<Integer> C = List.of();
+        for(int b : Tosplit){
+            if (a>b){
+                A.add(b);
+            }
+            if (a==b){
+                C.add(b);
+            }
+            if (a<b){
+                B.add(b);
+            }
+        }
+        return List.of(A,C,B);
+    }
+
+    private boolean HasRightSize(List<List<Integer>> Tocheck){
+        boolean Truth = true;
+        for (List<Integer> L : Tocheck){
+            if (L.size()>1){
+                Truth = false;
+            }
+        }
+        return Truth;
+    }
+
+    private List<Integer> Tolist(Sortable S){
+        int A = 0;
+        List<Integer> list = List.of();
+        while (A<S.size()){
+            list.add(S.get(A));
+            A=A+1;
+        }
+        return list;
+    }
+
+    private void Change(List<Integer> list){
+        int A = 0;
+        while (A<list.size()){
+            int B = 0;
+            while (B<this.Mustsort.size()){
+                if (this.Mustsort.get(B) == list.get(A)){
+                    this.Mustsort.swap(B, A);
+                    B=B+1;
+                }
+            }
+            A=A+1;
+        }
+    }
+    public void sort() {
+        List<Integer> Tosort = Tolist(this.Mustsort);
+        List<List<Integer>> Part = List.of(Tosort);
+        boolean Issort = false;
+        while (Issort == false){
+            List<List<Integer>> Provpart = List.of();
+            for (List<Integer> L : Part){
+                Provpart.addAll(split(L));
+            }
+            Part=Provpart;
+            Issort=HasRightSize(Part);
+        }
+        List<Integer> sort=List.of();
+        for (List<Integer> L : Part){
+            sort.addAll(L);
+        }
+        Change(sort);
+    }
+}