PDA

Visualizza la versione completa : [c++] ordinare alfabeticamente delle stringhe


HeroGian
29-01-2013, 18:42
Ragazzi devo scrivere una funzione che ordini alfabeticamente un'array di stringhe, potreste aiutarmi??
Questo il codice che ho scritto, dove sbaglio? :(



const int lung_max_parola = 20;
const int num_parole = 5;

void bubblesort( char vett_parole[][lung_max_parola] )
{
for ( int j = 0; j < num_parole -1; j++ )
for ( int i = j; i < num_parole; i++ )
if ( strcmp(vett_parole[j], vett_parole[i]) == 1 )
{
char aux[lung_max_parola];
strcpy( aux, vett_parole[i] );
strcpy( vett_parole[i], vett_parole[j] );
strcpy( vett_parole[j] , aux );
}
}

Scara95
29-01-2013, 19:44
Per effettuare un bubble sort devi confrontare (ed eventualmente scambiare) sempre due elementi adiacenti...
Quell'algoritmo non un bubble sort...

HeroGian
29-01-2013, 20:21
Quindi che modifiche devo fare al codice??
Grazie

oregon
30-01-2013, 08:21
http://it.wikipedia.org/wiki/Bubble_sort

Marco1995
03-02-2013, 19:18
Nel codice,nel ciclo pi interno,la i devi farla partire da j+1 perch l'obiettivo quello di iniziare a confrontare la stringa in posizione i con quella immediatamente successiva...quindi se una stringa si trova in posizione i,quella successiva si trova necessariamente nella posizione j=i+1.

Correggetemi se sbaglio eh . . :D

:ciauz:
P.s. Come ti hanno fatto notare non si tratta di un Bubblesort...

Loading