Ordinamento di una lista: bubble-sort

Slides:



Advertisements
Presentazioni simili
Algoritmi di ordinamento
Advertisements

Gli Algoritmi di ordinamento
INFORMATICA Algoritmi fondamentali
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Unità G3 Algoritmi notevoli. Ordinamento Un insieme di dati {a0, a1, a2, …, an} si dice ordinato in ordine crescente se a0 a1 a2 a3 … an I dati sono generalmente.
Algoritmi notevoli.
Analisi della complessità degli algoritmi
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Array multidimensionali
Algoritmi notevoli In linguaggio C.
Analisi della complessità degli algoritmi
Array (vettori) In linguaggio C / C++.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci
Lez. 51 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Complessita'
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Iterazione enumerativa (for)
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Usa la tecnica del.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Introduzione. Gli argomenti di oggi Analisi della bontà degli algoritmi Modello Computazionale Tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
e array a più dimensioni
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
APPUNTI SUL LINGUAGGIO C
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Algoritmo SelectSort Invariante di ciclo: ad ogni passo
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
AN Fondam98 Sorting Ricerca in un vettore ordinato.
Elementi di Informatica di base
Sistemi e Tecnologie Informatiche
Ordinamento dell’array
Problema dell’ordinamento di un array: Il metodo Bubble Sort.
Radix-Sort(A,d) // A[i] = cd...c2c1
Didattica dei Fondamenti dell’Informatica 2 Seconda giornata: progettare un algoritmo corretto, efficiente, e possibilmente ottimo! Guido Proietti
Vedremo in seguito che (n log n) è un limite stretto per il problema dellordinamento. Per ora ci limitiamo a dimostrare che: La complessità nel caso pessimo.
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
ALGORITMI a.
Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante un algoritmo.
Algoritmi di Ordinamento
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
Array (ordinamento) CORDA – Informatica A. Ferrari.
ALGORITMI DI RICERCA Nella programmazione s’incontra spesso la necessità di ricercare un elemento (chiave) in un elenco, oppure di ordinare gli elementi.
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
Algoritmi e Strutture Dati
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Lo strano mondo degli algoritmi di ordinamento Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
L’ordinamento per Selezione seleziona l’elemento con valore maggiore e lo scambia con il primo elemento del vettore. Tra gli N-1 elementi rimanenti viene.
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
GLI ALGORITMI DI ORDINAMENTO
L’ALGORITMO Un algoritmo è un procedimento formale che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Ordinamento. Introduzione Una delle operazioni che si possono eseguire sui vettori, è quella di ordinare gli elementi del vettore in ordine crescente.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Transcript della presentazione:

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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

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)

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)

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)

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)

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)