ciao a tutti,

Premetto che sto utilizzando una struttura di questo tipo.
Codice PHP:
typedef struct nodo {
    
int Frequenza;
    
struct nodo next;
    
char Parola[100];
    
char Pos[10];
    
char Lemma[100];
    } 
NODO
ho creato un array di puntatori e puntatori per gestire meglio l'ordinamento e stavo usando una versione di quick sort che ordina la frequenza (intero)
Codice PHP:
void Swap (NODO **Array, int iint j)
{  
NODO Temp;
   
Temp=Array[j];
   Array[
j]=Array[i];
   Array[
i]=Temp;
 }

int Partizione(NODO **Array,int Low,int High)
{
    
int ValorePivot=Array[Low]->Frequenza;
    while (
Low<High)
    {
        while (
Low<High && Array[High]->Frequenza<=ValorePivot)
            --
High;
        
Swap(Array,High,Low);
        while (
Low<High && Array[Low]->Frequenza>=ValorePivot)
            ++
Low;
        
Swap(Array,High,Low);
    }

    return 
Low;
}

void QuickSort(NODO **Array,int Low,int High)
{
    
int Pivot;
    if(
Low<High)
    {
        
Pivot=Partizione(Array,Low,High);
        
QuickSort(Array,Low,Pivot);
        
QuickSort(Array,Pivot+1,High);
    }

Ora però volevo trasformare questo quicksort per visualizzare in ordine alfabetico il campo parola. Quindi molto banalmente ho cambiato la funzione partizione così:

Codice PHP:
int Partizione2(NODO **Array,int Low,int High)
{
    
char ValorePivot[100];
    
strcpy(ValorePivot,Array[Low]->Parola);
    while (
Low<High)
    {
        while (
Low<High && ( strcmp(Array[High]->Parola,ValorePivot)>=)  )
            --
High;
        
Swap2(Array,High,Low);
        while (
Low<High && ( strcmp(Array[High]->Parola,ValorePivot)<=)  )
            ++
Low;
        
Swap2(Array,High,Low);
    }

    return 
Low;

Purtroppo però non sembra funzionare, e da valori sballati. + in dettaglio ho notato che alla prima esecuzione escono risultati sballati, ma se richiamo la funzione + volte vedo le parole ordinarsi man mano. Cosa sbaglio? premettendo che la prima versione di quicksort funziona perfettamente?