Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
L01 - Sviluppo Di Programmi
L01 - Sviluppo Di Programmi
Analisi e Progettazione
Selection Sort
2
Fasi dello sviluppo
3
Fasi dello sviluppo
Analisi
4
Analisi
6 Dizionario dei Dati
sequenza s di n interi
n>0
sequenza s1 di n interi
s1 è una permutazione di s dove
∀ i ∈ [0, n-2], s1i ≤ s1i+1
8
Fasi dello sviluppo
Progettazione
9
Progettazione
10 Esempio: ordinamento di una sequenza di interi
Analisi
12 Funzione ordina_array
Selection Sort
14
4 6 7 24 20 10 15 12 30 18
scambia
4 6 7 10 20 24 15 12 30 18
Progettazione
15 Funzione ordina_array
• minimo(a, n)
• scambia(i, j)
Analisi
16 Funzione minimo
min = 0;
for(i = 1; i < n; i++)
if(a[i] < a[min])
min = i;
return(min);
18
Fasi dello sviluppo
Implementazione
19
Codifica
20
void selection_sort(int *arr, int n){
int i;
for(i=0; i<n-1; i++){
int min = minimo(&arr[i], n-i) + i;
scambia(&arr[i], &arr[min]);
}
}
int minimo(int *arr, int n){
int min = 0, i; void scambia(int * x, int * y)
for(i=1; i<n; i++) {
if (arr[min] > arr[i]) int temp = *x;
min = i; *x = *y;
return min; *y = temp;
} }