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);
}