La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ordinamento di una lista: bubble-sort

Presentazioni simili


Presentazione sul tema: "Ordinamento di una lista: bubble-sort"— Transcript della presentazione:

1 Ordinamento di una lista: bubble-sort
L’idea è di far “galleggiare” il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate DEI - Univ. Padova (Italia)

2 Ordinamento: bubble-sort
Passo 1: parto dalla fine dell’array e scambio il valore di due elementi se quello con l’indice più alto è minore dell’altro. Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 87 14 27 22 Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 87 14 22 27 Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 87 22 27 DEI - Univ. Padova (Italia)

3 Ordinamento: bubble-sort
Passo 2: riduco l’array da considerare per l’ordinamento e ripeto il passo 1 Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 87 22 27 Parte ordinata Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 87 22 27 Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 22 87 27 DEI - Univ. Padova (Italia)

4 Ordinamento: bubble-sort
Passo 3: riduco l’array da considerare per l’ordinamento e ripeto il passo 1 Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 22 87 27 Parte ordinata Prova(1) Prova(2) Prova(3) Prova(4) Prova(5) 1 14 22 27 87 DEI - Univ. Padova (Italia)

5 Selection sort in Matlab
function xout=BubbleSort(xin); xout=xin; n=length(xout); for i=2:n-1, for j=n:-1:i if(xout(j) < xout(j-1)), tmp=xout(j-1); xout(j-1)=xout(j); xout(j)=tmp; end; end; end; return; Incremento la dimensione della parte ordinata: ad ogni iterazione del ciclo di “i” la parte disordinata parte da un indice più grande Col ciclo di “j” scorro la parte disordinata dalla fine del vettore fino all’indice “i” Vengono confrontati i valori adiacenti. Se sono in ordine sbagliato vengono scambiati di posto DEI - Univ. Padova (Italia)

6 Attributi degli algoritmi: correttezza
La prima caratteristica di un algoritmo è la correttezza, cioè deve fornire una soluzione corretta del problema e terminate. Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate DEI - Univ. Padova (Italia)

7 Attributi degli algoritmi: efficienza
Tempo e spazio di memoria sono risorse limitate di un calcolatore, per cui dovendo scegliere fra due algoritmi corretti, si preferirà quello che usa meno risorse. L’efficienza di un algoritmo indica quanto parsimoniosamente esso utilizza le risorse a disposizioene DEI - Univ. Padova (Italia)

8 Notazione o(), O(), Q() Per quantificare l’efficienza di un algoritmo al variare della numerosità dei dati su cui agisce si usa cercare di esprimere la sua complessità computazionale in termini di funzioni della numerosità dei dati n che fungano da limite inferiore, limite superiore, o di un andamento asintotico. DEI - Univ. Padova (Italia)

9 Limite inferiore: o() Si dice che una funzione f(n) è “ o piccolo” di una funzione g(n), scrivendo f(n)=o(g(n)),se: f(n) g(n) n n0 DEI - Univ. Padova (Italia)

10 Limite superiore: O() Si dice che una funzione f(n) è “ o grande” di una funzione g(n), scrivendo f(n)=O(g(n)),se: f(n) g(n) n n0 DEI - Univ. Padova (Italia)

11 Andamento asintotico: Q()
Si dice che una funzione f(n) è “ theta grande” di una funzione g(n), scrivendo f(n)=Q(g(n)),se la funzione f(n) è contemporaneamente o(g(n)) ed O(g(n)): f(n) g(n) n n0 DEI - Univ. Padova (Italia)

12 Selection-sort: efficienza
Seleziona l’elemento più piccolo nell’array Scambia l’elemento selezionato con il primo Ordina la parte restante dell’ array, cioè riduco la parte di array da considerare, escludendo le prime posizioni già ordinate DEI - Univ. Padova (Italia)

13 Selection-sort: efficienza
Per selezionare l’elemento più piccolo di un array devo analizzare tutti gli elementi di un array, e quindi è un operazione che implica n operazioni DEI - Univ. Padova (Italia)

14 Selection-sort: efficienza
Lo scambio di un elemento con un altro viene fatto in tempo costante indipendente dalla dimensione dell’array DEI - Univ. Padova (Italia)

15 Selection-sort: efficienza
La parte disordinata dell’array si riduce di un elemento e ripeto la procedura. DEI - Univ. Padova (Italia)

16 Selection-sort: efficienza
Al primo passo devo trovare il minimo su un array disordinato di n elementi Al secondo passo devo trovare il minimo su un array disordinato di n-1 elementi Al terzo passo devo trovare il minimo su un array disordinato di n-2 elementi …. DEI - Univ. Padova (Italia)

17 Selection-sort: efficienza
Per completare l’argomento bisogna sommare la complessità computazionale di tutti i passi: n+(n-1)+(n-2)+…+2+1 DEI - Univ. Padova (Italia)

18 Bubble-sort: efficienza
L’idea è di far “galleggiare” il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate DEI - Univ. Padova (Italia)

19 Bubble-sort: efficienza
In maniera del tutto analoga a selectio-sort, la parte disordinata dell’array si riduce di un solo elemento ad ogni passo, e tutti gli elementi della parte disordinata devono essere analizzati DEI - Univ. Padova (Italia)

20 Bubble sort: efficienza
Come per selection sort bisogna sommare la complessità computazionale di tutti i passi: n+(n-1)+(n-2)+…+2+1 DEI - Univ. Padova (Italia)


Scaricare ppt "Ordinamento di una lista: bubble-sort"

Presentazioni simili


Annunci Google