From aab2ff44fbfb9d0d8e6448aa873b3f1b954a4b9e Mon Sep 17 00:00:00 2001 From: name Date: Thu, 12 Dec 2019 13:40:10 +0100 Subject: [PATCH] Wilfried - Add Sort for Chain List --- main_compress.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/main_compress.c b/main_compress.c index 4ad6c58..681864e 100644 --- a/main_compress.c +++ b/main_compress.c @@ -94,4 +94,95 @@ arbre huffman(arbre H, Freq L){ } return H; -} \ No newline at end of file +} + +Freq partition (Freq L; Freq deb; Freq fin) +{ + int permu; + int pivot; + Freq compt = deb; + Freq tmp; + if (!est_liste_vide(deb)) + { + pivot = deb -> nb; + compt = deb; + tmp = deb -> suiv; + while(tmp != (fin -> suiv)) + { + if(tmp -> nb) + { + permu = tmp->nb; + tmp = tmp -> suiv; + compt -> nb = permu; + } + tmp = tmp -> suiv; + } + permu = deb -> nb; + deb -> nb = compt -> nb; + compt -> valeur = nb; + } + return compt; +} + +void quicksort(Freq L; Freq deb; Freq fin) +{ + if ((deb -> nb) < (fin -> valeur)) + { + Freq pivot = partion(L,deb,fin); + if(!est_liste_vide(pivot)) + { + quicksort(L,deb,precedent(L,pivot -> nb)); + if + } + } +} + +/* +Freq fusion(Freq L, int i, int m, int j) +{ + int tmp,u,k,v; + tmp=j-i+1; + k=0; + u=-i; + v=m; + while ((u