Algoritmi di ordinamento di un array ORDINAMENTO ARRAY. Corso di Programmazione Cefi Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi di ordinamento di un array ORDINAMENTO ARRAY. Corso di Programmazione Cefi Informatica"

Transcript

1 Algoritmi di ordinamento di un array ORDINAMENTO ARRAY

2 Introduzione agli ordinamenti di un array Ordinare un array significa disporre i suoi elementi in ordine crescente o decrescente. Ad esempio,

3 Vari algoritmi di ordinamento di un array Esistono diversi algoritmi di ordinamento di un array, tra i quali citiamo Selection sort (ordinamento per selezione) Bubble sort (ordinamento a bolle) Insertion sort (ordinamento per inserimento) Quick sort (ordinamento veloce) Merge sort (ordinamento per fusione) I primi due tra questi, sono decisamente più semplici degli altri. Tuttavia, dobbiamo evidenziare il fatto che essi non sono i più veloci, che invece risultano essere il quick sort e il merge sort.

4 Selection Sort Supponiamo di voler ordinare l array in ordine crescente. Questo algoritmo di ordinamento si sviluppa in più fasi: in una prima fase prevede di selezionare il più piccolo elemento dell array e portarlo in prima posizione. Quindi, in una seconda fase, selezionare il secondo elemento più piccolo e portarlo in seconda posizione, e così via. Concentriamoci, per il momento, sulla prima fase. Si tratta di confrontare l elemento in prima posizione con il secondo, con il terzo, e così via fino all N-esimo, ed eventualmente scambiarlo nel caso in cui si trovi un elemento minore. Ad esempio,

5 Esempio prima fase della selection sort

6 Esempio seconda fase della selection sort Passiamo ora alla seconda fase. Si tratta di ripetere, più o meno, lo stesso ciclo di sopra, ma stavolta confrontando l elemento in seconda posizione con tutti i suoi successivi (il primo è stato già sistemato!), per portare in seconda posizione il secondo elemento più piccolo.

7 Pseudo codice Selection Sort Questo procedimento lo fai N-1 volte e alla fine troverai l array ordinato in modo crescente. Se invece dobbiamo ordinare l array in modo decrescente, devi scambiare gli elementi quando ne troviamo uno più grande. Ecco il pseudo codice della SelectionSort input N; int voti[n]; Definisci i,j,temp; for(i=0; i<n-1; i++) { /* per tutti i valori di i da 0 a N-2 */ for(j=i+1; j<n; j++) { /* per tutti i valori di j da i+1 a N-1 */ if (voti[j] < voti[i]) { temp=voti[j];voti[j]=voti[i];voti[i]=temp;

8 Bubble Sort Il nome di questo algoritmo (a bolle, in italiano) deriva dall osservazione che le bolle d aria in acqua tendono a salire in superficie. Anche questo algoritmo di ordinamento si sviluppa in più fasi: una prima fase prevede di individuare (sempre nell ipotesi di ordinare in modo crescente) il più grande elemento dell array, la cosiddetta bolla, e portarlo in ultima posizione, la superficie. Quindi in una seconda fase, si individua il secondo elemento più grande (la seconda bolla) e la si porta in penultima posizione (la superficie ora è questa, visto che l ultimo elemento è già stato messo a posto ), e così via. Concentriamoci, per il momento, sulla prima fase. Si tratta di confrontare tra loro il primo e il secondo elemento, e trovare la bolla tra questi. Se la bolla (il più grande) è il primo, li scambiamo per far salire la bolla in superficie, altrimenti sono già a posto tra loro. Successivamente confrontiamo il secondo elemento con il terzo, e portiamo il più grande,

9 Prima fase del Bubble sort la bolla, verso la superficie: se il secondo è il maggiore, li scambiamo, altrimenti stanno bene così. Continuiamo a confrontare il terzo elemento con il quarto, il quarto con il quinto, e così via. Alla fine di questa fase, avremo l elemento più grande dell array in ultima posizione, come nell esempio seguente:

10 Prima fase for(i=0; i<n-1; i++) /* per tutti i valori di i da 0 a N-2 */ { if (voti[i] > voti[i+1]) { temp=voto[i];voto[i]=voto[i+1];voto[i+1]=temp; Passiamo ora alla seconda fase. Si ricomincia a individuare la bolla e farla salire fino alla penultima posizione.

11 Esempio seconda fase

12 Seconda fase Stavolta, il pseudo codice per la seconda fase sono for(i=0; i<n-2; i++) /* per tutti i valori di i da 0 a N-2 */ { if (voti[i] > voti[i+1]) { temp=voto[i];voto[i]=voto[i+1];voto[i+1]=temp; Il codice per la seconda fase è esattamente uguale a quello della prima fase, con la differenza che dobbiamo fermarci una posizione prima. Questa operazione la esegui N-1 volte

13 Pseudo codice Bubble sort Alla fine il pseudo codice per il bubble sort è: input N; int voti[n]; Definisci i,j,temp; for(k=1;k<n;++k) {/* per tutti i valori di k da 1 a N-1 */ for(i=0;i<n-k;++i) { if (voti[i] > voti[i+1]) { temp=voti[i]; voti[i]=voti[i+1]; voti[i+1]=temp;

LE STRUTTURE DATI PARTE 1: ARRAY. Prof. G. Ciaschetti

LE STRUTTURE DATI PARTE 1: ARRAY. Prof. G. Ciaschetti 1 ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LE STRUTTURE DATI PARTE 1: ARRAY Prof. G. Ciaschetti Una struttura dati è una collezione di dati in memoria alla quale è possibile dare un unico

Dettagli

Ricerca in una sequenza ordinata

Ricerca in una sequenza ordinata Ricerca su array ordinata Ricerca in una sequenza ordinata Se la sequenza è ordinata posso sfruttare l ordinamento per rendere più efficiente la ricerca, terminando se l elemento corrente risulta maggiore

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Corso di Tecniche di Programmazione

Corso di Tecniche di Programmazione Problema: Data una sequenza di elementi in ordine qualsiasi, ordinarla. Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea:

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea: Silvia Rossi Algoritmi di Ordinamento 0 Lezione n. Parole chiave: Bubble Sort Selection Sort Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 00-0 Ordinamento

Dettagli

Algoritmi di Ordinamento

Algoritmi di Ordinamento Algoritmi di Ordinamento 1 Algoritmi di ordinamento Selection Sort Quick Sort Lower bound alla complessità degli algoritmi di ordinamento Statistiche di ordine 2 Selection Sort SelectionSort(dati[]) {

Dettagli

ALGORITMI DI ORDINAMENTO E RICERCA BINARIA. Docente: Giorgio Giacinto AA 2008/2009. problema dell ordinamento in modi diversi

ALGORITMI DI ORDINAMENTO E RICERCA BINARIA. Docente: Giorgio Giacinto AA 2008/2009. problema dell ordinamento in modi diversi Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Ordinamenti ricorsivi

Ordinamenti ricorsivi Ordinamenti ricorsivi Selection Sort ricorsivo Algoritmi di ordinamento I Il metodo del selection sort può essere facilmente realizzato in modo ricorsivo I si definisce una procedura che ordina (ricorsivamente)

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

7 Algoritmi di ricerca e di ordinamento

7 Algoritmi di ricerca e di ordinamento 7 Algoritmi di ricerca e di ordinamento { Strategie di ordinamento di un Array 1. * Scam bio o I ngenuo; Bubble-Sort (Sono sicuram ente le tecniche più sem plice da im plem entare m a risultano le più

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Dettagli

Informatica! Appunti della lezione 8!

Informatica! Appunti della lezione 8! Informatica! Appunti della lezione 8! Palindromia! Una stringa si dice palindroma quando si legge allo stesso modo da destra e da sinistra (es.: itopinonavevanonipoti )! Il problema del riconoscimento

Dettagli

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)

Dettagli

A. Ferrari Algoritmi notevoli

A. Ferrari Algoritmi notevoli Algoritmi notevoli in linguaggio C algoritmi o o o ricerca (verificare la presenza di un valore in un array) o o o ricerca sequenziale (array non ordinato) ricerca sequenziale (array ordinato) ricerca

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento Selection Sort Quick Sort Lower bound alla complessità degli algoritmi di ordinamento giu 03 ASD 1 Selection Sort SelectionSort(dati[]) { for (i=0; i

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di

Dettagli

Complessità Computazionale. Introduzione

Complessità Computazionale. Introduzione Complessità Computazionale Introduzione Un problema di conteggio Input - Un intero dove. Output - Il numero di coppie ordinate ( i, j ) tali che i e j sono interi e i j. Esempio: =4 (,), (,2), (,3), (,4),

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Informatica (A-K) 14. Linguaggio C -4

Informatica (A-K) 14. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 15 Algoritmi su array: selection sort, insertion sort, fusione

Dettagli

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica algoritmi notevoli Python algoritmi o ricerca (verificare la presenza di un valore in una sequenza) o o o ricerca sequenziale (sequenza non ordinata) ricerca sequenziale (sequenza ordinata) ricerca binaria

Dettagli

Calcolo Parallelo e Distribuito. a.a

Calcolo Parallelo e Distribuito. a.a Calcolo Parallelo e Distribuito a.a. 2005-2006 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Algoritmi di ordinamento Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array

Dettagli

Tecniche della Programmazione, lez.28

Tecniche della Programmazione, lez.28 Tecniche della Programmazione, lez.28 Problema dell'ordinamento di una sequenza di elementi lavorare sulla sequenza ordinata puo' essere utile in parecchi casi - ricerca di un elemento - unicita' di un

Dettagli

Università di Roma Tor Vergata L16-1. Ricerca: esaminare una collezione di dati, cercando un particolare valore. nome e cognome

Università di Roma Tor Vergata L16-1. Ricerca: esaminare una collezione di dati, cercando un particolare valore. nome e cognome Università di Roma Tor Vergata L16-1 Ricerca: esaminare una collezione di dati, cercando un particolare valore (per: ) reperire informazione modificarla stamparla cancellarla esempio: archivio studenti

Dettagli

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento Fondamenti di Informatica Le classi FileInputStream e RandomAccessFile Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Classe FileInputStream La classe FileInputStream

Dettagli

nel trasformare una sequenza di elementi

nel trasformare una sequenza di elementi Ordinamento Carla Binucci e Walter Didimo Il problema dell ordinamento In generale, il Problema dell ordinamento consiste nel trasformare una sequenza di elementi rendendola ordinata rispetto a un certo

Dettagli

ORDINAMENTO DI UN GRANDE NUMERO DI OGGETTI

ORDINAMENTO DI UN GRANDE NUMERO DI OGGETTI ORDINAMENTO DI UN GRANDE NUMERO DI OGGETTI L entropia era già molta ma... il risultato finale sarà irreversibile a dispetto di qualsivoglia ALGORITMO DI ORDINAMENTO SELECTION SORT INSERTION SORT MERGE

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 06 Algoritmi di ordinamento C. Limongelli Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento 1

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione Informatica Generale Andrea Corradini 14 - Algoritmi: ordinamento per inserimento e ricorsione Sommario Un algoritmo iterativo: l'ordinamento per inserimento (insertion sort) La ricorsione: i numeri triangolari

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Ordinamento per inserzione e per fusione

Ordinamento per inserzione e per fusione Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il

Dettagli

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort Ordinamento Sommario Ordinamento Selection Sort Bubble Sort/ Shaker Sort Shell Sort Cosa e' l'ordinamento Il problema consiste nell elaborare insiemi di dati costituiti da record I record hanno sono costituiti

Dettagli

Divide et impera. Divide et impera. Divide et impera. Divide et impera

Divide et impera. Divide et impera. Divide et impera. Divide et impera Divide et impera Divide et impera La tecnica detta divide et impera è una strategia generale per impostare algoritmi (par. 9.4). Consideriamo un problema P e sia n la dimensione dei dati, la strategia

Dettagli

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,... Vettori (array) Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...) I vettori sono caratterizzati da dimensione tipo Es.

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi di Ordinamento Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 13 novembre 2008 Il problema dell ordinamento Il problema dell ordinamento

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento Il problema Vogliamo ordinare un array monodimensionale in modo crescente per il caso decrescente valgono le stesse considerazioni Vari algoritmi possibili Diverse caratteristiche

Dettagli

Ordinamento. Scoperta guidata di tipici algoritmi: selection sort, bubble sort

Ordinamento. Scoperta guidata di tipici algoritmi: selection sort, bubble sort Ordinamento Scoperta guidata di tipici algoritmi: selection sort, bubble sort. Problema stimolo Si possiede una bilancia a due piatti ed N sacchi di iuta pieni di caffè. Ciascun sacco è identificato da

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi di Ordinamento Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema dell ordinamento Il problema dell ordinamento di un insieme

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento Il problema Vogliamo ordinare un array monodimensionale in modo crescente per il caso decrescente valgono le stesse considerazioni Vari algoritmi possibili Diverse caratteristiche

Dettagli

Alcuni metodi di ordinamento. Algoritmi di ordinamento. Ordinamento per inserimento diretto. Ordinamento per inserimento diretto

Alcuni metodi di ordinamento. Algoritmi di ordinamento. Ordinamento per inserimento diretto. Ordinamento per inserimento diretto 44 Algoritmi di ordinmento Fondmenti di Informtic A Ingegneri Gestionle Università degli Studi di Bresci Alcuni metodi di ordinmento Ordinmento per inserimento diretto (insertion sort) Ordinmento per selezione

Dettagli

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova Casi di prova Casi di prova Quando si vuole testare un algoritmo si devono costruire vari casi di prova. Invece di eseguire il programma più volte si può costruire un file di dati contenente tutti i casi

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Quick Sort. PARTITION(A,p,r) risistema il sottoarray A[p...r] e riporta l indice q:

Quick Sort. PARTITION(A,p,r) risistema il sottoarray A[p...r] e riporta l indice q: Quick Sort - Ordinamento in loco - Tempo di esecuzione nel caso peggiore: Θ(n 2 ) - Tempo di esecuzione nel caso medio: Θ(n lg n) - I fattori costanti nascosti nella notazione Θ sono abbastanza piccoli

Dettagli

Algoritmi di ordinamento (I parte)

Algoritmi di ordinamento (I parte) (I parte) Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Definizione formale del problema Input:! Una sequenza di n numeri Output:! Una permutazione

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un

Dettagli

Algoritmi di Ricerca Ordinamento

Algoritmi di Ricerca Ordinamento Algoritmi di Ricerca e Ordinamento Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Appunti Di Informatica Prof. Accarino 1 Algoritmi classici In ambito informatico alcuni problemi si presentano

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort 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 Ordinamento:

Dettagli

1.1 Concetti base dell Informatica: Algoritmi

1.1 Concetti base dell Informatica: Algoritmi 1.1 Concetti base dell Informatica: Algoritmi Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Università di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Università)

Dettagli

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda Progetto Corda Alberto Ferrari Alberto Ferrari Ingegneria dell'informazione, UniPR file:///e:/cordanoweb/lez/array.html#3 1/33 Array (ordinamento) 2/33 file:///e:/cordanoweb/lez/array.html#3 2/33 Sort

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

ALGORITMI Docente: Prof. Domenico Cantone

ALGORITMI Docente: Prof. Domenico Cantone CORSO SPECILE DI DURT NNULE PER IL CONSEGUIMENTO DELL BILITZIONE LL INSEGNMENTO NELL SCUOL SECONDRI DI I e II GRDO Indirizzo Fisico - Informatico - Matematico a.a. 00/07 - Classe - Informatica LGORITMI

Dettagli

A lezione sono stati presentati i seguenti passi per risolvere un problema:

A lezione sono stati presentati i seguenti passi per risolvere un problema: Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi

Dettagli

Algoritmi di ordinamento in linguaggio C

Algoritmi di ordinamento in linguaggio C Algoritmi di ordinamento in linguaggio C Ordinamento per inserimento Insertion Sort con funzione ausiliaria int inserisci_valore(int vett[], int dim, int valore) { int i = dim; while (i > 0 && vett[i-1]

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi di Ordinamento Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema dell ordinamento Il problema dell ordinamento di un insieme

Dettagli

Corso di Fondamenti di Informatica Algoritmi su array / 1

Corso di Fondamenti di Informatica Algoritmi su array / 1 Corso di Informatica Algoritmi su array / Anno Accademico 200/20 Francesco Tortorella Algoritmi su array Quando si usano gli array, si eseguono frequentemente alcune operazioni tipiche : inizializzazione

Dettagli

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Dettagli

Permutazioni. 1 Introduzione

Permutazioni. 1 Introduzione Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,

Dettagli

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Ordinamento Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente)

Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente) Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente) 5 33 23 17 6 9 81 3 i j Confronto a due a due tutte

Dettagli

Bubble Sort. Bubble Sort

Bubble Sort. Bubble Sort Bubble Sort Bubble Sort Se l i-esimo elemento è maggiore dell elemento i+-esimo, essi vengono scambiati. Si termina quando non vi sono più scambi da fare. Nessuno scambio effettuato: Il vettore è ordinato

Dettagli

Fondamenti di Informatica 12. Linguaggio C -4

Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati

Dettagli

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe Stringhe s char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); c i a o \0 Scrivere un programma che legga da input un array

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Capitolo 7 Algoritmi di ordinamento 7.1 Selection sort L algoritmo di ordinamento per selezione opera nel modo seguente: supponiamo che i primi k elementi siano ordinati; l algoritmo sceglie il minimo

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

Dettagli

Fondamenti di Informatica L-A. Esercitazione 6

Fondamenti di Informatica L-A. Esercitazione 6 Fondamenti di Informatica L-A Esercitazione 6 Passaggio dei Parametri nelle Funzioni Ordinamento di Vettori Paolo Torroni Università degli Studi di Bologna Laurea in Ingegneria Elettronica e delle Telecomunicazioni

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento

Dettagli

ESERCITAZIONE N.2 LINGUAGGIO C. In preparazione alla prova in Itinere

ESERCITAZIONE N.2 LINGUAGGIO C. In preparazione alla prova in Itinere ESERCITAZIONE N.2 LINGUAGGIO C In preparazione alla prova in Itinere ORDINARE UN ARRAY INVERTIRE IL VALORE DI DUE VARIABILI Le due operazioni di assegnamento non possono essere contemporanee (deve esserci

Dettagli

Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010

Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010 Ordinare

Dettagli

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema

Dettagli

Lezione 6 Selection/Insertion Sort su interi e stringhe

Lezione 6 Selection/Insertion Sort su interi e stringhe Lezione 6 Selection/Insertion Sort su interi e stringhe Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Tutoraggio Venerdì 14

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento Scopo di questa esercitazione: Comprendere la complessità del problema ordinamento cerchiamo di valutare il costo di una soluzione (confrontandola con un altra ) Modifiche al codice

Dettagli

1.1 Concetti base dell Informatica: Algoritmi

1.1 Concetti base dell Informatica: Algoritmi 1.1 Concetti base dell Informatica: Algoritmi Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá)

Dettagli

Richiami: v[i] e &v[i] Organizzazione della memoria. Esercizio 1. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis

Richiami: v[i] e &v[i] Organizzazione della memoria. Esercizio 1. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Biomedica Corso di Laurea in Ingegneria Elettrica, Elettronica ed Informatica Capitolo 5 Linguaggio Assembly

Dettagli

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 13: QuickSort su liste (www.informatica-uno.blogspot.com)

Dettagli

Ordinamento efficiente: quick-sort

Ordinamento efficiente: quick-sort Ordinamento efficiente: quick-sort Si cerca di ridurre la parte disordinata di più di un elemento per volta (a differenza di selection-sort e bubble-sort) L idea è di ordinare parzialmente l array, in

Dettagli

Linguaggio C. Problemi di Ricerca e Ordinamento: Algoritmi e Complessità.

Linguaggio C. Problemi di Ricerca e Ordinamento: Algoritmi e Complessità. Linguaggio C Problemi di Ricerca e Ordinamento: Algoritmi e Complessità. 1 Complessità degli Algoritmi Si definisce Complessità di un Algoritmo C(A) la funzione dei parametri rilevanti per A che determina

Dettagli

Università degli Studi di Verona. Esercizi (seconda parte) Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Esercizi (seconda parte) Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica 2014/2015 Esercizi (seconda parte) Gennaio 2015 - Sergio Marin Vargas Scrivere un programma Una

Dettagli

Algoritmi di Ordinamento Corso di Informatica Laurea in Fisica. prof. ing. Corrado Santoro

Algoritmi di Ordinamento Corso di Informatica Laurea in Fisica. prof. ing. Corrado Santoro Algoritmi di Ordinamento Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro ፫ Bubble Sort Se l i-esimo elemento è maggiore dell elemento i+-esimo, essi vengono scambiati. Si termina quando

Dettagli

La ricerca. Sequenziale Binaria L ordinamento. Selection Sort Appendice: Quick Sort. Sommario FONDAMENTI DI INFORMATICA 1. Ricapitolando un po

La ricerca. Sequenziale Binaria L ordinamento. Selection Sort Appendice: Quick Sort. Sommario FONDAMENTI DI INFORMATICA 1. Ricapitolando un po Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Ricerca e ordinamento

Ricerca e ordinamento Ricerca e orinamento Paolo Bison Fonamenti i Informatica 1 A.A. 200/04 Università i Paova Ricerca e orinamento, Paolo Bison, A.A. 200-04, 2001 p.1/8 Struttura ei ati si consiera una sequenza i... ati memorizzati

Dettagli

ESPONENZIALI E LOGARITMI. chiameremo logaritmica (e si legge il logaritmo in base a di c è uguale a b ).

ESPONENZIALI E LOGARITMI. chiameremo logaritmica (e si legge il logaritmo in base a di c è uguale a b ). ESPONENZIALI E LOGARITMI Data una espressione del tipo a b = c, che chiameremo notazione esponenziale (e dove a>0), stabiliamo di scriverla anche in un modo diverso: log a c = b che chiameremo logaritmica

Dettagli