Wilfried - Add Sort for Chain List
This commit is contained in:
parent
79cac753c2
commit
aab2ff44fb
1 changed files with 92 additions and 1 deletions
|
|
@ -94,4 +94,95 @@ arbre huffman(arbre H, Freq L){
|
||||||
|
|
||||||
}
|
}
|
||||||
return H;
|
return H;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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<m) && (v<j))
|
||||||
|
{
|
||||||
|
if (L[u] < L[v])
|
||||||
|
{
|
||||||
|
tmp[k]=L[u]
|
||||||
|
u=u+1;
|
||||||
|
k=k+1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp[k]=L[v];
|
||||||
|
v=v+1;
|
||||||
|
k=k+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (u<m)
|
||||||
|
{
|
||||||
|
for(l=m;l<u;l++)
|
||||||
|
{
|
||||||
|
off = m-u;
|
||||||
|
L[j-off]=L[l];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(l=0;l<k;l++)
|
||||||
|
{
|
||||||
|
L[l]=tmp[k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Freq tri_fusion(L ,i,j)
|
||||||
|
{
|
||||||
|
if (i<j-1)
|
||||||
|
{
|
||||||
|
m=int((i+j)/2);
|
||||||
|
tri_fusion(i,m-1);
|
||||||
|
tri_fusion(m,j);
|
||||||
|
fusion(T,i,m,j);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
Reference in a new issue