PDA

View Full Version : selection sort complessità di spazio


Dark_Tranquillity
04-07-2004, 13:11
come si misura la complessità di spazio di una funzione del genere:

void i_sel_sort(float *A, int n){
int i, j, p;
float min;

for (i=0; i<n-1; i++) {
min = A[i];
p = i;
for (j=i+1; j<n; j++){
if (A[j]<min){
min = A[j];
p = j;
}
}
A[p] = A[i];
A[i] = min;
}
}

Sul tempo non c'è dubbio che sia n^2 ma lo spazio?
PS: le complessità di tempo tra un algoritmo ricorsivo e la sua versione tradotta in iterativo sono le stesse?

Mixmar
04-07-2004, 13:33
Non ho mai calcolato la complessità spaziale... comunque, penso che basti sommare lo spazio occupato dalle variabili utilizzate dalla procedura; qui hai:

4 interi (n, i, j e p)

1 float (min)

1 matrice di float di dimensione n (A[])

1 puntatore alla matrice (*A)

Quindi, l'occupazione tende a diventare (se conosci gli spazi occupati sulla tua macchina da ogni tipo di dato):

4 * spazio_di_un_intero + 1 * spazio_di_un_indirizzo + (n + 1) * spazio_di_un_float.

Per cui, direi che la complessità è O(n).