Allora ho scritto questo insertion sort per effettuare degli ordinamenti, sò che ci sono algoritmi più efficienti ma a me serviva questo. Questo algoritmo prende in ingresso un array di struutture di tipo
Così come sono ora l'algoritmo funziona. Se però al posto di ordinare il campo numerico della struttura voglio ordinare il puntatore a char non funziona.codice:// DICHIARAZIONE STRUTTURA struct s { int numero; char *carattere; }; int main { typedef struct s strutt; // DICHIARO ARRAY DI STRUTTURE DI3 ELEM // AFFETTO ASSEGNAZIONI strutt array[3]; array[0].numero = 2; array[0].carattere = "prova"; array[1].numero = 3; array[1].carattere = "ciao"; array[2].numero = 1; array[2].carattere = "casa"; // RICHIAMO ALGORITMO insertion_sort(array, 3); } // IMPLEMENTAZIONE DELL'INSERTION S. void insertion_sort(strutt *x, int length) { strutt key; int i,j=1,scambi=0; for(j=1;j<length;j++) { key = x[j]; i=j-1; while(x[i].numero>key.numero && i>=0) { x[i+1] = x[i]; i--; } x[i+1] = key; } }
Come posso modificare l'algoritmo per fargli ordinare anche in base ai caratteri?

Rispondi quotando