07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.

Slides:



Advertisements
Presentazioni simili
Il problema della ricerca Algoritmi e Strutture Dati.
Advertisements

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.
Algoritmi notevoli In linguaggio C.
Strutture dati lineari
Lez. 131 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Rappresentazione.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari 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.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Mergesort1 if (n>1) /* la collezione contiene almeno due elementi. */ {1. Dividi la collezione in due di circa la metà degli elementi. 2. chiamata ricorsiva.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 7 Tavole hash 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.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati III. Algoritmi di Ordinamento
Heap binari e HeapSort.
Lalgoritmo MergeSort Applica la strategia del divide et impera Divide: suddivide la sequenza di n elementi data in due sottosequenze di n/2 elementi Impera:
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
Corso di informatica Athena – Periti Informatici
28 ottobre Mergesort F. Bombi 28 ottobre 2003.
Teoria degli algoritmi e della computabilità Terza giornata: Ricerca e ordinamento ottimi. P vs NP, algoritmi di approssimazione, e il potere della randomizzazione.
ALGORITMI a.
Algoritmo che viene utilizzato per elencare gli elementi di un insieme secondo una sequenza stabilita da una relazione d'ordine, in modo che ogni elemento.
Definizione di un algoritmo
Sistemi e Tecnologie Informatiche
Array (ordinamento) CORDA – Informatica A. Ferrari.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
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.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Lo strano mondo degli algoritmi di ordinamento Algoritmi.
Il problema della ricerca Algoritmi e Strutture Dati.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema della ricerca Algoritmi e Strutture Dati.
Complessità Computazionale
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
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Ricerca 01/08/2019 package.
Transcript della presentazione:

07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure lelemento non è presente nella sequenza stessa. In generale una sequenza di elementi si può realizzare come un array e la scansione avviene usando un indice. Se la sequenza non è ordinata a priori occorre eseguire una ricerca lineare o sequenziale. Se la sequenza è ordinata è opportuno eseguire una ricerca binaria.

07/04/2003Algoritmi Ricerca binaria Lalgoritmo di ricerca lineare richiede che al più tutti gli elementi dellarray vengano confrontati con la chiave. Se lelemento viene trovato prima di raggiungere la fine della sequenza non sarà necessario proseguire la ricerca. Se la sequenza su cui occorre effettuare la ricerca è ordinata si può usare un algoritmo di ricerca molto più efficiente che cerca la chiave sfruttando il fatto che gli elementi della sequenza sono già disposti in un dato ordine. Esempi di sequenze ordinate: elenco telefonico, agenda, etc. In questi casi si usa un algoritmo di ricerca binaria che è più efficiente perché riduce lo spazio di ricerca.

07/04/2003Algoritmi Ricerca binaria 1. Confronta la chiave con lelemento centrale della sequenza, 2. Se la chiave è uguale allelemento centrale, allora la ricerca termina positivamente, 3. Se invece la chiave è maggiore dellelemento centrale si effettua la ricerca solo sulla sottosequenza a destra, 4. Se invece la chiave è minore dellelemento centrale dello spazio di ricerca, si effettua la ricerca solo sulla sottosequenza a sinistra.

07/04/2003Algoritmi La ricerca stile dizionario (3) Ogni volta elimino la metà delle schede, oppure mi fermo perché ho trovato la scheda cercata Ogni volta divido il numero N delle schede per 2, mi fermo quando N è diventato 1 o 0 Al più eseguo x passi dove x è il logaritmo in base 2 di N Scheda cercata!

07/04/2003Algoritmi Ricerca binaria Inizialmente la ricerca è fatta su N elementi, dove N indica la lunghezza della sequenza (lo spazio di ricerca ha dimensione N). Ad ogni iterazione lo spazio della ricerca si riduce di circa la metà. Potremmo dire che si passa da N ad N/2. Il caso peggiore si ha quando lelemento cercato non si trova nella sequenza (non esiste un elemento uguale alla chiave). Nel caso peggiore, literazione viene eseguita log 2 N volte.

07/04/2003Algoritmi Liste ordinate Una lista di n oggetti confrontabili (a 0, a 1, a 2, … a n-1 ) si dice ordinata quando a i <= a i+1 per ogni i=0,… n-2 Per ordinare una lista si deve costruire una nuova lista permutando gli elementi in modo che sia soddisfatta la condizione indicata

07/04/2003Algoritmi Ordinare un array Considereremo inizialmente algoritmi che operano su dati contenuti in un array di n elementi oppure sui prima n elementi di un array di dimensioni maggiori Input: a1,a2,...,an Output: a'1,a'2,...,a'n permutazione (riarrangiamento) di a1,a2,...,an tale che a'1 a'2... a'n.

07/04/2003Algoritmi algoritmo di ordinamento selection-sort Idea: Dato l array: v[0],…,v[n-1] - cercare lelemento minimo dellarray; - scambiarlo con lelemento v[0], a meno che v[0] stesso non sia già il minimo; - ordinare larray v[1],…,v[n-1], dato che lelemento v[0] è già nella sua posizione definitiva.

07/04/2003Algoritmi Algoritmo di ordinamento bubblesort Idea: - leggere larray v[0],…,v[n-1], da sinistra a destra, confrontando tra di loro ogni coppia di elementi contigui, e, se questi non sono in ordine tra di loro, scambiarli di posto; - a fine lettura lelemento massimo si troverà al posto n-1;* - se non si sono effettuati scambi, larray è già ordinato, altrimenti ordinare con lo stesso metodo larray v[0],…,v[n-2]. * Infatti ad ogni confronto, qualunque elemento segua il massimo sarà minore di questo, e quindi verrà scambiato.

07/04/2003Algoritmi Algoritmo di ordinamento quicksort Idea: - scegliere un elemento dellarray a caso (es. il mediano, cioè quello nella posizione mediana, cioè con indice p=[(n-1)/2)]; - sia v[p]=x - ordinare parzialmente tutti gli altri elementi rispetto al mediano, cioè produrre larray: v[0],…,v[h-1], v[h],…,v[n-1]. dove tutti gli elementi in rosso sono minori di x e quelli in azzurro sono maggiori o uguali di x; - ripetere lo stesso procedimento sugli array, se hanno lunghezza >1: v[0],…,v[h-1] e v[h],…,v[n-1].

07/04/2003Algoritmi Un algoritmo ottimo di ordinamento (ma non in loco): mergesort Idea: - dividere larray dato in metà, cioè in due array v[0],…,v[(n-1)/2],v[(n- 1)/2+1],…,v[n-1]; - ordinare i due array separatamente; - unire i due array ordinati in un unico array t[0],…,t[n-1] (operazione detta merge). Algoritmo di merge: - scorrere larray v[0],…,v[(n-1)/2], con un indice i e contemporaneamente scorrere larray v[(n-1)/2+1],…,v[n-1] con un indice j, confrontando ad ogni passo v[i] e v[j]; il minore tra i due elementi sarà inserito in sequenza in un array t di servizio.