RICERCA IN UN VETTORE.

Slides:



Advertisements
Presentazioni simili
1 La Standard Template Library vettori, liste, mappe, …. find, replace, reverse, sort, …. puntatori intelligenti La libreria standard STL e una libreria.
Advertisements

Programmazione dinamica: problema della sottosequenza più lunga
Corso di Laurea Triennale in Ingegneria Gestionale Corso di Fondamenti di informatica A. A A.Pinto Algoritmi di ricerca 1.
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.
Sintassi Commenti Istruzioni /*.. Commenti */
Vettori e matrici algebrici
LE MATRICI.
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.
RICERCA IN UN VETTORE. Metodi basati sul confronto di chiavi Si confrontano gli elementi del vettore V con lelemento (chiave K) che si vuole ricercare.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci
SOTTOINSIEMI, INCLUSIONE
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
RICONOSCIMENTO DI SEQUENZE DI EVENTI
Algebra delle Matrici.
Heap Sort. L’algoritmo heap sort è il più lento di quelli di ordinamento O(n * log n) ma, a differenza degli altri (fusione e quick sort) non richiede.
Iterazione enumerativa (for)
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
IL MODELLO DI REGRESSIONE MULTIPLA
VETTORI.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
Astrazioni sul controllo Iteratori. 2 Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di.
BIOINGEGNERIA S. Salinari Lezione 4.
Le Transazioni in AT A cura Dott. Pasquale Riccardi
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Introduzione all’algebra lineare
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:
Algoritmi e Programmazione Avanzata
Lezione VII Laboratorio di Programmazione. Simulazione esame Scrivere in C++ una funzione di nome RICERCA che, presi come parametri. un array A di numeri.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
grafi e reti Ottimizzazione su Reti - Network Optimization Testi :
Linear Algebra Methods in Combinatorics with applications to Geometry and Computer Science Linear Algebra Methods in Combinatorics with applications to.
COSA VUOL DIRE UN MEZZO? COSA VUOL DIRE UN TERZO?
“Come fanno due corpi a sentirsi a distanza, attraverso
Le Frazioni Cosa sono, a che servono.
Corso di informatica Athena – Periti Informatici
2. Premesse all’analisi infinitesimale
Statistica economica (6 CFU)
Introduzione ai Metodi Inversi
Heap Ordinamento e code di priorità Ugo de Liguoro.
Scomposizione (unica) di un
Un insieme X di segmenti complanari.
Lisa, Anais, Selene Patrick. Allinizio si credeva che lantisemitismo non esisteva in Italia, sei anni dopo invece é iniziato. La paura che gli stranieri.
Didattica on line.
Array (ordinamento) CORDA – Informatica A. Ferrari.
PROBABILITA’ Scienza che studia i fenomeni retti dal caso EVENTO (E): avvenimento che può accadere oppure no 1.certo: se si verifica sempre (es. nel lancio.
Metodi Quantitativi per Economia, Finanza e Management Lezione n°9 Regressione lineare multipla: la stima del modello e la sua valutazione, metodi automatici.
ALGORITMI DI RICERCA Nella programmazione s’incontra spesso la necessità di ricercare un elemento (chiave) in un elenco, oppure di ordinare gli elementi.
Consideriamo due misurazioni, per esempio benessere e soddisfazione personale. Le due variabili sono simili. Chi ha punteggi sopra la media in una variabile,
Somma e differenza tra vettori
Lo strano mondo degli algoritmi di ordinamento Algoritmi.
LA REVISIONE DEI CONTRATTI DI LAVORO DIPENDE DAI PREZZI ATTESI E PROVOCA VARIAZIONE DEI PREZZI EFFETTIVI (queste relazioni riguardano l’offerta!) RICORDIAMO.
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Gli orti urbani a Genova. Orti urbani cosa sono gli orti urbani sono piccole zolle di terreno di solito di piccole dimensioni di solito tra i 50 ed i.
Algoritmi Esempio Rev.1.0 of
9. Problemi ricorrenti: ordinamento e ricerca
Normalizzazione di uno schema relazionale.
8b. Esempi di algoritmi con l’uso di array: ordinamento e ricerca
Algoritmi Esempio Rev.1.0 of
Esercitazione su Instruction Level Parallelism
L’algoritmo MergeSort
* 07/16/96 Sez. 2: Ordinamento La consultazione di banche dati è sempre più cruciale in tutte le applicazioni dell’Informatica. Se vogliamo consultare.
6. Il prodotto scalare E' un'operazione che, dati due vettori, associa quel numero che si ottiene moltiplicando il modulo del primo vettore per la componente.
Transcript della presentazione:

RICERCA IN UN VETTORE

Metodi basati sul confronto di chiavi Si confrontano gli elementi del vettore V con l’elemento (chiave K) che si vuole ricercare. ELEMENTI UTILIZZATI NELL’ANALISI: Vettore V di dimensione N Chiave K Indice i t = indice che punta all’inizio del vettore in cui ricercare u= indice che punta alla fine del vettore in cui ricercare

RICERCA LINEARE Si confronta ripetutamente la chiave K con ciascuno degli elementi del vettore finché non si trova V(i) = K (ricerca con successo) oppure finché non sono stati considerati tutti gli elementi del vettore senza trovarne nessuno uguale a K (ricerca senza successo).

RICERCA LINEARE: FLOW-CHART start i = 0 i = i+1 K ≠ V [i] and i < = N si no no si i <=N Elemento Non trovato Elemento trovato end

RICERCA LINEARE: Numero Confronti Due valutazioni diverse a seconda dell’esito della ricerca: ricerca con successo: si fa riferimento al numero medio di confronti, che si ottiene dividendo il numero totale di confronti necessari per ricercare tutti gli elementi per il numero degli elementi stessi. Siccome per individuare il primo elemento si effettua un confronto, per il secondo due e così via, il numero totale di confronti è : 1+2+3+4+5+….. N = N(N+1)/2 Il numero medio di confronti risulta (N+1)/2 ricerca senza successo: l’algoritmo esamina sempre tutto il vettore, quindi il numero di confronti è sempre N

RICERCA IN VETTORI ORDINATI Vantaggio: Il numero di confronti in caso di ricerca senza successo è lo stesso che nella ricerca con successo (N+1)/2, perché si procede alla scansione del vettore finché K ≤ V[i]. A questo punto o K= V[i], e la ricerca è con successo, oppure si possono interrompere i confronti, e la ricerca risulta senza successo. Pertanto si determina il numero medio di confronti come in caso di successo

RICERCA BINARIA (detta dicotomica o logaritmica) Si applica su vettori ordinati Si confronta la chiave K con l’elemento che si trova a metà del vettore. Se l’elemento individuato non è uguale a quello cercato si prosegue la ricerca nel semivettore inferiore o superiore a seconda che la chiave K sia più piccola o più grande dell’elemento che si trova a metà. Il procedimento continua iterativamente in modo da suddividere le sottotabelle via via individuate. La ricerca termina con successo quando l’elemento V[i] considerato ad un certo passo è proprio uguale a K. La ricerca termina con insuccesso quando la parte di vettore considerata è costituita da un solo elemento.

RICERCA DICOTOMICA: FLOW-CHART start t = 1 u = N i =  (t+u)/2  K ≠ V [i] si no K > V [i] no si u = i - 1 t = i + 1 t <= u and K ≠ V [i] si no no K ≠ V [i] si Elemento trovato Elemento Non trovato end

RICERCA DICOTOMICA: Numero Confronti L’algoritmo è il più veloce tra quelli di ricerca basati sul confronto di chiavi. In un vettore di dimensione N = 2h -1 l’algoritmo deve compiere h=log2(N+1) passi(e quindi confronti) per la ricerca senza successo, mentre i confronti possono essere di meno per la ricerca con successo.