Ricerca e ordinamento

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ricerca e ordinamento"

Transcript

1 Ricerca e orinamento Paolo Bison Fonamenti i Informatica 1 A.A. 200/04 Università i Paova Ricerca e orinamento, Paolo Bison, A.A , 2001 p.1/8

2 Struttura ei ati si consiera una sequenza i... ati memorizzati in un array si eve avere una relazione uguaglianza e una orine applicabile ai singoli ati ( ) a elementi ( ) calcolato ciascuno al corrisponente ato con key (chiave) Ricerca e orinamento, Paolo Bison, A.A , 2001 p.2/8

3 Confronto tra ati in Java tipi base operatori i relazione e uguaglianza oggetti operatori i uguaglianza verifica se è la meesima istanza uguaglianza tra istanze metoo boolean equals(object) il metoo efinito nella classe Object equivale a == relazione orine metoo int compareto(object) ell interfaccia Comparable non è efinito nella classe Object Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

4 Rappresentazione ei ati interfaccia KeyComparable public interface KeyComparable { Comparable key(); } classe Datum class Datum implements KeyComparable{ int num; String info; public Datum(int i,string st) { num = i; info = st; } public Comparable key() { return new Integer(num);} } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.4/8

5 Ricerca trovare in una sequenza i ati... un particolare elemento, se esiste, tale per cui si abbia con = ricerca per chiave ata un chiave trovare il ato tale per cui Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

6 Ricerca lineare cercare il valore 12 nel seguente array Ricerca e orinamento, Paolo Bison, A.A , 2001 p.6/8

7 Ricerca lineare algoritmo si confronta un ato alla volta in maniera sequenziale finché non si trova l elemento cercato o termina la sequenza coice Java Object linearsearch( KeyComparable[] ata, Comparable key){ int i; for(i=0;i<ata.length;i++) if (ata[i].key().equals(key)) return ata[i]; return null; } Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

8 Ricerca lineare: prestazioni valutazione numero i accessi all array se il ato cercato non è presente, sono necessari accessi se il ato è presente, il numero i accessi ipene alla posizione el ato nell array in meia complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.8/8

9 Ricerca binaria cercare il valore 12 nel seguente array orinato Ricerca e orinamento, Paolo Bison, A.A , 2001 p.9/8

10 Ricerca binaria algoritmo si confronta l elemento i mezzo con il ato cercato se non è tale ato se è maggiore si cerca in moo binario nel sotto-array a sx altrimenti nel sotto-array i x si termina quano si trova l elemento oppure si ha un sotto-array vuoto icotomica o per bisezione applicabile solo se i ati sono orinati Ricerca e orinamento, Paolo Bison, A.A , 2001 p.10/8

11 Ricerca binaria: coice Java Object binarysearch(keycomparable[] ata,comparable key) { return binsearch(ata,key,0,ata.length); } Object binsearch(keycomparable[] ata,comparable key, int min,int max) { int mi; if (min>max) return null; mi =(min+max)/2; if (ata[mi].key().equals(key)) return ata[mi]; if (ata[mi].key().compareto(key)>0) return binsearch(ata,key,min,mi); else return binsearch(ata,key,mi+1,max); } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.11/8

12 Ricerca binaria: prestazioni numero i confronti necessari per trovare un ato ato un array i imensione si eve effettuare un confronto con l elemento centrale effettuare una ricerca in un array i imensione per cui la cui soluzione è complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.12/8

13 Orinamento %! % " %! ata una sequenza i ati generare un altra sequenza! " $# tale per cui & &! &" '# '# Ricerca e orinamento, Paolo Bison, A.A , 2001 p.1/8

14 Orinamento per selezione ( ( ( ( ( ( ( ( Ricerca e orinamento, Paolo Bison, A.A , 2001 p.14/8

15 Orinamento per selezione: algoritmo ) ato un array i elementi si cerca il ato più piccolo si scambia questo elemento con il primo si consiera il sotto-array i imensione composto a tutti i ati eccetto il primo si riapplica il meesimo algoritmo Ricerca e orinamento, Paolo Bison, A.A , 2001 p.1/8

16 Orinamento per selezione: coice voi selectionsort(keycomparable[] ata){ int i,j,k; KeyComparable min,t; for (i=0;i<ata.length;i++){ // ricerca el minimo k = i; min=ata[k]; for (j=i+1;j<ata.length;j++){ t=ata[j]; if (t.key().compareto(min.key())<0) { k = j; min = t; } } // scambio ata[k]=ata[i]; ata[i]=min; } } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.16/8

17 Orinamento per selezione: prestazioni ) + calcolo el numero i accessi ati elementi accessi per trovare il minimo accessi per lo scambio in totale, ( +) per orinare i rimanenti ati (( )+) e via fino a =2 totale accessi ( +)+(( )+))+ = * +(+)+(2+) complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.1/8

18 Orinamento per inserimento ( ( ( ( ( ( ( ( ( ( ( Ricerca e orinamento, Paolo Bison, A.A , 2001 p.18/8

19 Orinamento per inserimento: algoritmo ), ) si eseguono passi a ogni passo si consiera i ati ivisi in ue parti una orinata una non orinata si prene il primo ato presente nella parte non orinata e lo si inserisce in quella orinata per inserirlo si sposta a x ati che siano maggiori i quello a inserire a ogni passo la parte orinata aumenta i una unità mentre quella non orinata iminuisce i 1 Ricerca e orinamento, Paolo Bison, A.A , 2001 p.19/8

20 Orinamento per inserimento: coice voi insertionsort(keycomparable[] ata){ int i,j; KeyComparable x; for (i=1;i<ata.length;i++){ x=ata[i]; j=i; // spostamento i elementi minori i x while(j>=0 && ata[j].key().compareto(x.key())>0){ ata[j+1]=ata[j]; j=j; } // inserimento ato ata[j+1]=x; } } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.20/8

21 Orinamento per inserimento: prestazioni - I - ) ) caso migliore ati già orinati nessuna iterazione el ciclo interno, solo un accesso per il confronto il ciclo esterno viene eseguito volte totale accessi: complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.21/8

22 Orinamento per inserimento: prestazioni - II ) /. caso peggiore ati orinati a rovescio il ciclo interno eve spostare tutti i ati già orinati totale accessi: complessità 0 Ricerca e orinamento, Paolo Bison, A.A , 2001 p.22/8

23 Orinamento per inserimento: prestazioni - III ) /. 1 caso meio ati in orine casuale il ciclo interno eve spostare in meia metà ei ati già orinati totale accessi: complessità 0 Ricerca e orinamento, Paolo Bison, A.A , 2001 p.2/8

24 Bubble sort Ricerca e orinamento, Paolo Bison, A.A , 2001 p.24/8

25 Bubble sort: algoritmo a turno si compara coppie aiacenti i ati scambianoli se necessario si ripete questo passo per tutti i possibili confronti oppure finché non è avvenuto nessun scambio ati più piccoli risalgono verso l inizio ella sequenza Ricerca e orinamento, Paolo Bison, A.A , 2001 p.2/8

26 Bubble sort: coice voi bubblesort(keycomparable[] ata){ int i,j; KeyComparable x; for (i=1;i<ata.length;i++) for (j=ata.length;j>=i;j--) if (ata[j].key().compareto(ata[j].key())>0) { // scambio x=ata[j];ata[j]=ata[j];ata[j]=x; } } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.26/8

27 Bubble sort: prestazioni / ) il ciclo esterno viene eseguito volte il numero i iterazioni el ciclo interno iminuisce i uno a ogni iterazione i quello esterno totale accessi (caso migliore): 0. / 0 complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.2/8

28 Merge sort Ricerca e orinamento, Paolo Bison, A.A , 2001 p.28/8

29 Merge sort: algoritmo se la sequenza è formata a un solo ato è orinata altrimenti si ivie la sequenza in ue sotto-sequenze (circa) uguali si orina la prima sotto-sequenza con il merge sort si orina la secona sotto-sequenza con il merge sort si fonono (merge) le ue sequenze orinate costrueno una nuova sequenza orinata preneno un ato alla volta alla sotto-sequenza il cui primo ato è il minore Ricerca e orinamento, Paolo Bison, A.A , 2001 p.29/8

30 Merge sort: coice - I voi mergesort(keycomparable[] ata){ int mi; KeyComparable left[],right[]; if (ata.length>1){ mi = ata.length / 2; left = new KeyComparable[mi]; right = new KeyComparable[ata.length-mi]; System.arraycopy(ata,0,left,0,mi); System.arraycopy(ata,mi,right,0,ata.length-mi); mergesort(left); mergesort(right); merge(ata,left,right); } } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.0/8

31 Merge sort: coice - II voi merge(keycomparable[] a, KeyComparable[] b, KeyComparable[] c){ int ia=0,ib=0,ic=0; while (ib<b.length && ic<c.length) if (b[ib].key().compareto(c[ic].key())<0) a[ia++]=b[ib++]; else a[ia++]=c[ic++]; while (ib<b.length ) a[ia++]=b[ib++]; while (ic<c.length) a[ia++]=c[ic++]; } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.1/8

32 Merge sort: prestazioni - numero i accessi arraycopy richieono accessi ogni invocazione ricorsiva richiee fusione necessita i accessi ( per scrivere) totale accessi : accessi per leggere e complessità Ricerca e orinamento, Paolo Bison, A.A , 2001 p.2/8

33 Quicksort Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

34 Quick sort: algoritmo 4 4 ata una sequenza i si sceglie un ato 4 (pivot) elementi si partiziona la sequenza in ue sotto-sequenze tale per cui 6 tale per cui si orina separatamente le ue sotto-sequenze Ricerca e orinamento, Paolo Bison, A.A , 2001 p.4/8

35 Quick sort: coice - I public static voi quicksort(keycomparable[] ata){ qsort(ata,0,ata.length); } private static voi qsort(keycomparable[] ata, int l, int r){ int i,j; KeyComparable x,w; i=l; j=r; x=ata[(l+r)/2]; Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

36 Quick sort: coice - II o { while (ata[i].key().compareto(x.key())<0) i++; while (ata[j].key().compareto(x.key())>0) j--; if (i<=j) { w=ata[i];ata[i]=ata[j];ata[j]=w; i++; j--; } } while(i<=j); if (l<j) qsort(ata,l,j); if (i<r) qsort(ata,i,r); } } Ricerca e orinamento, Paolo Bison, A.A , 2001 p.6/8

37 Quick sort: prestazioni complessità ipene alla scelta el pivot caso migliore si sceglie sempre il valore meiano caso peggiore si sceglie sempre il valore minimo o massimo Ricerca e orinamento, Paolo Bison, A.A , 2001 p./8

38 Confronto tra orinamenti selection insertion bubble merge quick migliore meio peggiore Ricerca e orinamento, Paolo Bison, A.A , 2001 p.8/8

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. 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

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

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

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

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

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

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

Gli algoritmi ricorsivi di ordinamento. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Gli algoritmi ricorsivi di ordinamento. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino ordinamento Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Merge Sort Ricorsivo, divide et impera Stabile Divisione: due sottovettori SX e DX rispetto al centro del vettore. p r A.A.

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

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

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

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

COMPLESSITA COMPUTAZIONALE (II PARTE) Tutor: Francesca Piersigilli

COMPLESSITA COMPUTAZIONALE (II PARTE) Tutor: Francesca Piersigilli COMPLESSITA COMPUTAZIONALE (II PARTE) Tutor: Francesca Piersigilli Teoria della complessità Pone le basi per stabilire: 1. la complessità di un problema 2. l efficienza di un algoritmo quanta memoria usa?

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

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

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

Esercizi su array di array

Esercizi su array di array Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale

Dettagli

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare

Dettagli

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E11 Esercizi su array e array di array C. Limongelli Gennaio 2012 1 Contenuti Fusione di due array ordinati, con eliminazione di

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine lo scopo finale è ben definito algoritmi equivalenti diversi algoritmi possono avere efficienza

Dettagli

Ordinamento. Ordinamento. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Ordinamento. Ordinamento. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Gli array in java Problema ordinamento Selection sort per array di oggetti:

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

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

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

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

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

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

Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine. Ipotesi: gli elementi siano memorizzati in un array.

Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine. Ipotesi: gli elementi siano memorizzati in un array. ALGORITMI DI ORDINAMENTO Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine lo scopo finale è ben definito algoritmi equivalenti diversi i algoritmi i possono avere efficienza

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

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine lo scopo finale è ben definito algoritmi equivalenti diversi algoritmi possono avere efficienza

Dettagli

Sapendo che il vettore è ordinato, la ricerca può essere ottimizzata Vettore ordinato in senso non decrescente: Vettore ordinato in senso crescente:

Sapendo che il vettore è ordinato, la ricerca può essere ottimizzata Vettore ordinato in senso non decrescente: Vettore ordinato in senso crescente: Sapendo che il vettore è ordinato, la ricerca può essere ottimizzata Vettore ordinato in senso non decrescente: Esiste una relazione d ordine totale sul dominio degli elementi se i

Dettagli

ORDINAMENTO PER SELEZIONE ORDINAMENTO PER SELEZIONE ORDINAMENTO VELOCE CONFRONTI

ORDINAMENTO PER SELEZIONE ORDINAMENTO PER SELEZIONE ORDINAMENTO VELOCE CONFRONTI ORDINAMENTO PER SELEZIONE Per l analisi delle prestazioni di tale algoritmo di ordinamento, si considerano i due cicli for annidati: poiché i confronti avvengono nel ciclo interno si ha che n 2 i= 0 (

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

PROVA SCRITTA DEL MODULO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-7 CFU) 19 febbraio 2015 NOME: COGNOME: MATRICOLA:

PROVA SCRITTA DEL MODULO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-7 CFU) 19 febbraio 2015 NOME: COGNOME: MATRICOLA: PROVA SCRITTA DEL MODULO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-7 CFU) 9 febbraio 205 NOME: COGNOME: MATRICOLA: ESERCIZIO (5-6 CFU: 0 punti; 7 CFU: 8 punti) Progettare una rete sequenziale che presenti

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

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

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

Algoritmi di ordinamento (I parte)

Algoritmi di ordinamento (I parte) Algoritmi di ordinamento (I parte) E2: sommario Classificazione degli algoritmi di ordinamento Studio di due implementazioni di algoritmi che utilizzano interfaccia Comparable Algoritmo per inserimento

Dettagli

Algoritmi di ordinamento e ricerca. Classe SelSort.java

Algoritmi di ordinamento e ricerca. Classe SelSort.java Classe SelSort.java public class SelSort Trova l elemento più piccolo nella porzione finale di un array. @param a l array da esplorare @param from la posizione iniziale dell intervallo @return la posizione

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

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

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare

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

UNIVERSITÀ DEGLI STUDI DI BERGAMO

UNIVERSITÀ DEGLI STUDI DI BERGAMO UNIVERSITÀ DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE E METODI MATEMATICI Corso di Laurea in Ingegneria Informatica Esame di Informatica III B Progettazione e algoritmi a.a. 2011/12

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

0/0 1/0 1/0 0/0 0/1 1/0 1/0

0/0 1/0 1/0 0/0 0/1 1/0 1/0 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI C A L C O L A T O R I E L E T T R O N I C I NUOVO E VECCHIO ORDINAMENTO DIDATTICO Gennaio 2008 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI

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

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

Dettagli

ALGORITMI DI ORDINAMENTO

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine lo scopo finale è ben definito algoritmi equivalenti diversi algoritmi possono avere efficienza

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 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

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 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

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 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 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

PROVA SCRITTA DEL MODULO INTEGRATO E DEL CORSO DI NOME: COGNOME: MATRICOLA: CFU:

PROVA SCRITTA DEL MODULO INTEGRATO E DEL CORSO DI NOME: COGNOME: MATRICOLA: CFU: PROVA SCRITTA DEL MODULO INTEGRATO E DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA 7 Febbraio 29 NOME: COGNOME: MATRICOLA: CFU:

Dettagli

SOMMARIO IL PROBLEMA DELLA RICERCA. Algoritmi di ricerca: Algoritmi di ordinamento: RICERCA LINEARE

SOMMARIO IL PROBLEMA DELLA RICERCA. Algoritmi di ricerca: Algoritmi di ordinamento: RICERCA LINEARE SOMMARIO IL PROBLEMA DELLA RICERCA Algoritmi di ricerca: Ricerca lineare; Ricerca binaria (su elenchi già ordinati). Dato un array e un oggetto, stabilire se l oggetto è contenuto in un elemento dell array,

Dettagli

PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 20 Febbraio 2014

PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 20 Febbraio 2014 PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 20 Febbraio 24 NOME: COGNOME: MATRICOLA: CFU: ESERCIZIO (8 punti) Progettare una rete sequenziale che presenti un ingresso X

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

PRIMA SCRITTA DEL MODULO DI

PRIMA SCRITTA DEL MODULO DI PRIMA SCRITTA DEL MODULO DI CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA ED INFORMATICA CORSO DI LAUREA IN INGEGNERIA BIOMEDICA 23 giugno 26 NOME: COGNOME: MATRICOLA: CFU: ESERCIZIO (8 punti) (a)

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

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

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

Esercizi parte 3. La classe ArrayBinTree dovra implementare, tra le altre, l operazione seguente: padre: dato un nodo, restituire l indice del padre.

Esercizi parte 3. La classe ArrayBinTree dovra implementare, tra le altre, l operazione seguente: padre: dato un nodo, restituire l indice del padre. Esercizi parte 3 RAPPRESENTAZIONE DI ALBERI BINARI 1. Definire una classe LinkedBinTree che implementa alberi binari in modo collegato, con nodi implementati come oggetti di classe BinNode. La classe dovra

Dettagli

NOME: COGNOME: MATRICOLA:

NOME: COGNOME: MATRICOLA: PROVA SCRITTA DEL CORSO DI CALCOLATORI ELETTRONICI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA ED INFORMATICA 4 ottobre 27 NOME: COGNOME: MATRICOLA: ESERCIZIO

Dettagli

Algoritmi e Strutture Dati. Lezione 3

Algoritmi e Strutture Dati. Lezione 3 Algoritmi e Strutture Dati Lezione 3 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Sommario Alberi Binari di Ricerca Gestione Stringhe Progettazione Esercizi 2 3 4 Alberi Binari 10

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

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

PRIMA PROVA INTERMEDIA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 23 Aprile 2014

PRIMA PROVA INTERMEDIA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 23 Aprile 2014 PRIMA PROVA INTERMEDIA DEL MODULO DI CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 23 Aprile 24 NOME: COGNOME: MATRICOLA: CFU: ESERCIZIO (7 punti) (a) (5 punti) Si progetti

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

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO

ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO ALGORITMI DI ORDINAMENTO Scopo: ordinare una sequenza di elementi in base a una certa relazione d ordine lo scopo finale è ben definito algoritmi equivalenti diversi algoritmi possono avere efficienza

Dettagli

tipi di dato astratti

tipi di dato astratti tipi di dato astratti A. FERRARI ADT Un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità che dipendono esclusivamente dalla semantica

Dettagli

Implementazione ADT: Alberi

Implementazione ADT: Alberi Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice

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

Il TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3

Il TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3 Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali

Dettagli

Definizione informale

Definizione informale Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali

Dettagli

Definizione informale. Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche

Definizione informale. Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali

Dettagli

Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z

Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z Anno Accademico 2002-2003 9 luglio 2002-03 Domanda 1, punti 6 Si consideri la seguente classe Java, in cui,

Dettagli

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017 Cominciamo con un esempio... Franco FRATTOLILLO Dipartimento di Ingegneria Università degli Studi del Sannio Corso di "Programmazione I" Corso di Laurea in Ingegneria Informatica / ExAT 1 Franco FRATTOLILLO

Dettagli

PRIMA PROVA INTERMEDIA DEL MODULO DI. 23 aprile 2015 NOME: COGNOME: MATRICOLA: CFU:

PRIMA PROVA INTERMEDIA DEL MODULO DI. 23 aprile 2015 NOME: COGNOME: MATRICOLA: CFU: PRIMA PROVA INTERMEDIA DEL MODULO DI 23 aprile 25 NOME: COGNOME: MATRICOLA: CFU: ESERCIZIO (0 punti) Sintetizzare una rete sequenziale, otata i un ingresso X e un uscita Z= in corrisponenza ella sequenza

Dettagli

Heap e Code di Priorità

Heap e Code di Priorità Heap e Code di Priorità heap heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. ogni nodo contiene una chiave maggiore o eguale di quelle presenti negli eventuali figli non

Dettagli

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale

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

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola Algoritmi e strutture dati 16 Dicembre 04 Canali A L e M Z Cognome Nome Matricola Problema 1 (6 punti) Determinare la funzione calcolata dal metodo mistero e la sua complessità computazionale in funzione

Dettagli

Algoritmi di ordinamento (II parte)

Algoritmi di ordinamento (II parte) Algoritmi di ordinamento (II parte) E3: sommario Studio di due implementazioni di algoritmi avanzati Algoritmo ordinamento veloce (QuickSort) Algoritmo per fusione (MergeSort) Metodi offerti in java.util

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

Inserimento in una lista ordinata

Inserimento in una lista ordinata Inserimento in una lista ordinata Vogliamo inserire un nuovo elemento in una lista in cui gli elementi sono memorizzati in ordine crescente: Passo 1: creare un nuovo nodo della lista Passo 2: trovare il

Dettagli

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve GLI ALBERI BINARI DI RICERCA Cosimo Laneve argomenti 1. alberi binari di ricerca 2. la ricerca di elementi e la complessità computazionale 3. operazione di cancellazione di elementi 4. esempi/esercizi

Dettagli

Linguaggio C. Algoritmi di ordinamento e ricerca. Università degli Studi di Brescia. Prof. Massimiliano Giacomin

Linguaggio C. Algoritmi di ordinamento e ricerca. Università degli Studi di Brescia. Prof. Massimiliano Giacomin Linguaggio C Algoritmi di ordinamento e ricerca Università degli Studi di Brescia Prof. Massimiliano Giacomin ORDINAMENTO DI VETTORI Dato un vettore, es. int v[10] 9 5 2 3 2 10 2 10 4 1 permutare i suoi

Dettagli