La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DEI - Univ. Padova (Italia) Ordinamento di una lista: bubble-sort Lidea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte.

Presentazioni simili


Presentazione sul tema: "DEI - Univ. Padova (Italia) Ordinamento di una lista: bubble-sort Lidea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte."— Transcript della presentazione:

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

2 DEI - Univ. Padova (Italia) Ordinamento: bubble-sort 27 Prova(1) Prova(2)Prova(3)Prova(4)Prova(5) Passo 1: parto dalla fine dellarray e scambio il valore di due elementi se quello con lindice più alto è minore dellaltro Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Prova(1)Prova(2)Prova(3)Prova(4)Prova(5)

3 DEI - Univ. Padova (Italia) Ordinamento: bubble-sort Passo 2: riduco larray da considerare per lordinamento e ripeto il passo Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Parte ordinata

4 DEI - Univ. Padova (Italia) Ordinamento: bubble-sort Passo 3: riduco larray da considerare per lordinamento e ripeto il passo Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Prova(1)Prova(2)Prova(3)Prova(4)Prova(5) Parte ordinata

5 DEI - Univ. Padova (Italia) 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 allindice i Vengono confrontati i valori adiacenti. Se sono in ordine sbagliato vengono scambiati di posto

6 DEI - Univ. Padova (Italia) 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

7 DEI - Univ. Padova (Italia) 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. Lefficienza di un algoritmo indica quanto parsimoniosamente esso utilizza le risorse a disposizioene

8 DEI - Univ. Padova (Italia) Notazione o(), O(), () Per quantificare lefficienza 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.

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

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

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

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

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

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

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

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

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

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

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

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


Scaricare ppt "DEI - Univ. Padova (Italia) Ordinamento di una lista: bubble-sort Lidea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte."

Presentazioni simili


Annunci Google