diff --git a/readme.md b/readme.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..66e9ed7471f39b16ca03d8e7e4b75c065f34c278 100644
--- a/readme.md
+++ b/readme.md
@@ -0,0 +1,139 @@
+# Projet_Pne
+
+# METHODE DE QUICKSORT
+
+
+
+# FONCTION PARTITION 
+
+static void partition(list_t * L, elmlist_t * pivot, list_t * val_inf, list_t * val_sup, int (*cmpFct)(void*, void*)) {
+    for (elmlist_t * cur = L->head; cur != NULL; cur = cur->suc) { //on parcourt la liste de la tête jusqu'à 0 
+        if (cmpFct(get_data(cur), get_data(pivot)) < 0) //cmpfct va decider si le data est inferiur  
+            queue(val_inf, get_data(cur));            
+        else
+            queue(val_sup, get_data(cur));
+    }
+}
+
+
+# FONCTION QUICKSORT
+
+# Etape (1)
+void quick_sort(list_t * L, int (*cmpFct)(void*, void*)) {
+    assert(L && cmpFct); //on verifier L et CmpFct
+
+    if (L->numelm > 1) { 
+       
+        elmlist_t * pivot = get_head(L); //la tete sera un pivot et on le retire de la liste
+        L->head = get_suc(pivot); 
+        pivot->pred = NULL;
+        pivot->suc = NULL;
+    }
+
+# Etape (2)
+//on créer deux nouveaux liste
+list_t * val_inf_pivot = new_list();
+list_t * val_sup_pivot = new_list();
+
+
+# Etape (3)
+
+//on appelle le fonction partition
+partition(L,pivot,val_inf_pivot,val_sup_pivot,cmpFct);
+
+# Etape (4)
+
+ if (is_empty(val_inf_pivot)) { //le liste sera le pivot s'il n'y en a pas
+            L->head = pivot;
+            L->tail = pivot;
+            L->numelm = 1;
+        } else {
+            quick_sort(val_inf_pivot, cmpFct);
+            L->head = val_inf_pivot->head;
+            L->tail = val_inf_pivot->tail;
+            L->numelm = val_inf_pivot->numelm;
+            pivot->pred = L->tail;
+            L->tail->suc = pivot;
+            L->tail = pivot;
+            L->numelm += 1;
+        }
+       
+
+        if (!is_empty(val_sup_pivot)) {
+            quick_sort(val_sup_pivot, cmpFct);
+            val_sup_pivot->head->pred = pivot;
+            pivot->suc = val_sup_pivot->head;
+            L->tail = val_sup_pivot->tail;
+            L->numelm += val_sup_pivot->numelm;
+        }
+
+# Etape (5)
+//on liberé leur pointeur respectif
+      free(val_inf_pivot);
+        free(val_sup_pivot);
+    }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#outils
+git remote add origin https://gitlab.univ-lorraine.fr/e87374u/projet_pne.git
+git branch -M main
+git push -uf origin main
+
+