scusami ma il caldo mi causa la comprensione lenta e non riesco a seguire il tuo codice, io la scriverei così
ciaocodice:#include <stdio.h> void quickSort( char *[], int, int); int partition( char *[], int, int); int main() { char * s[] = { "r", "t", "q", "a", "d", "w", "b", "z", "c"}; int i; printf("\nArray non ordinata : "); for(i = 0; i < 9; ++i) printf(" %s ", s[i]); printf("\n"); quickSort( s, 0, 8); printf("\nArray ordinata : "); for(i = 0; i < 9; ++i) printf(" %s ", s[i]); printf("\n"); } void quickSort( char *a[], int l, int r) { int j; if( l < r ) { j = partition( a, l, r); quickSort( a, l, j-1); quickSort( a, j+1, r); } } int partition( char * a[], int l, int r) { char * pivot; char * t; int i, j; pivot = a[l]; i = l; j = r+1; while( 1) { do ++i; while( (strcmp(a[i], pivot) <= 0) && i <= r ); do --j; while (strcmp(a[j], pivot) > 0) ; if( i >= j ) break; t = a[i]; a[i] = a[j]; a[j] = t; } t = a[l]; a[l] = a[j]; a[j] = t; return j; }
sergio

Rispondi quotando