diff --git a/src/main/java/ch/hepia/structure/BinaryHeap.java b/src/main/java/ch/hepia/structure/BinaryHeap.java
index 146cc15f4a05c0d78556abb1e58e2ff3955286b6..131ae468e325cfe5e32da7517816085f7154a43d 100644
--- a/src/main/java/ch/hepia/structure/BinaryHeap.java
+++ b/src/main/java/ch/hepia/structure/BinaryHeap.java
@@ -1,11 +1,15 @@
+java.lang.Math 
+java.util.Random 
+
 public class BinaryHeap{
-    private int[] heap;
+    //private int[] heap;
 
-    public BinaryHeap(){
-        this.heap = new int[10];
-        }
+    public BinaryHeap(int size){
+        //this.heap = new int[10];
+        heap = int[size];
+    }
 
-    public BinaryHeap(int[] values){
+    /*public BinaryHeap(int[] values){
         int[] newHeap = new int[values.length];
         for (int value : values){
             for (int i = 0; i < newHeap.length; i++){
@@ -14,10 +18,61 @@ public class BinaryHeap{
             System.out.println(newHeap[1]);
         }
         this.heap = newHeap;
+    }*/
+
+    public static populate(int nbValues){
+         System.out.println("gfgdg");
+        for (int i = 0; i < nbValues; i++) {
+            randomVal = Math.random();
+             //System.out.println(randomVal);
+            this.heap[i] = randomVal;
+        }
+        //return heap;
+    }
+
+    private static void Echange(ref int a, ref int b){
+        int swap = a;
+        a = b;
+        b = swap;
+    }
+
+
+    private static void Tamiser(int[] arbre, int noeud, int n){
+        int k = noeud;
+        int j = 2 * k;
+
+        while (j <= n)
+        {
+            if ((j < n) && (arbre[j] < arbre[j + 1]))
+                j++;
+
+            if (arbre[k] < arbre[j])
+            {
+                Tri.Echange(ref arbre[k], ref arbre[j]);
+                k = j;
+                j = 2 * k;
+            }
+            else
+                break;
+        }
+    }
+
+    public static void TriParTas(BinaryHeap arbre){
+        for (int i = arbre.Length >> 1; i >= 0; i--)
+            Tri.Tamiser(arbre, i, arbre.Length - 1);
+
+        for (int i = arbre.Length - 1; i >= 1; i--)
+        {
+            Tri.Echange(ref arbre[i], ref arbre[0]);
+            Tri.Tamiser(arbre, 0, i - 1);
+        }
     }
 
     public static void main(String[] args){
-        BinaryHeap test = new BinaryHeap(new int[]{10,2});
+        BinaryHeap test = new BinaryHeap();
+        test.populate(5);
+        //System.out.println(Arrays.toString(test));
+          System.out.println("aaa");
     }
 
 }
\ No newline at end of file