Avendo un algoritmo di exchage sort indicato sotto qualcuno mi direbbe su che valori č la complessitā di tempo e spazio??? Grazie
codice:#include <stdio.h> #include <malloc.h> /* PROTOTIPO FUNZIONE */ void ex_sort(float *A, int n); main() { /* DICHIARAZIONE VARIABILI */ int i, n, c; float *A; /* LETTURA GRANDEZZA ARRAY */ printf("Inserire la grandezza n dell'array: "); scanf("%d",&n); /* ALLOCAZIONE DINAMICA DELLA MEMORIA */ if(!(A = (float *)malloc(n*sizeof(float)))) abort(); /* LETTURA DI TUTTI GLI ELEMENTI DELL' ARRAY A */ printf("\nInserire uno per uno tutti gli elementi dell'array...\n"); for (i=0; i<n; i++){ printf("Inserire il %d° elemento: ", c=i+1); scanf("%f", &A[i]); } /* RICHIAMO DELLA FUNZIONE */ ex_sort(A, n); /* STAMPA A VIDEO DELL'ARRAY ORDINATO */ printf("\nL'array A č ora ordinato come segue:\n"); for (i=0; i<n; i++) printf("%f\n", A[i]); } /****************** SPECIFICHE FUNZIONE *************************/ void ex_sort(float *A, int n){ int p,K,i,var; p = n; do { K = 0; for(i=0; i<n-1; i++) { if(A[i]>A[i+1]) { var = A[i]; A[i] = A[i+1]; A[i+1] = var; K = 1; p = i+1; } } n = p; } while (K==1); }

Rispondi quotando