• Non ci sono risultati.

Si possono usare diverse tecniche.

N/A
N/A
Protected

Academic year: 2021

Condividi "Si possono usare diverse tecniche."

Copied!
5
0
0

Testo completo

(1)

RICERCA IN UN VETTORE

La ricerca controlla se gli elementi di un vettore contengono un certo valore dato (detto anche chiave K) e comunica se l'elemento cercato esiste oppure non esiste e nel caso che esista può comunicare la posizione dell'elemento nel vettore.

I metodi di ricerca sono basati quindi sul confronto degli elementi del vettore V con il valore che si vuole ricercare (chiave K).

ELEMENTI UTILIZZATI NELL'ANALISI:

• Vettore V di dimensione N

• Chiave K

Si possono usare diverse tecniche.

VETTORE NON ORDINATO

RICERCA SEQUENZIALE COMPLETA (O LINEARE) : è utilizzata se il vettore non è ordinato.

Si confrontano sequenzialmente (uno dopo l'altro) tutti gli elementi del vettore con il valore K cercato:

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

L'operazione di ricerca termina quindi per elemento trovato o elemento non trovato per fine vettore.

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

II numero medio di confronti, dividendo per N, risulta (N+1)/2.

• ricerca senza successo:

l'algoritmo esamina sempre tutto il vettore, quindi il numero di confronti è sempre N.

(2)

RICERCA in un VETTORE NON ORDINATO

• Vettore V di dimensione N

• Valore da ricercare: K

i < N and Trovato = falso

V [ i ] = k i = 0

i = i + 1

Trovato = falso

Trovato = vero

Trovato = vero

Il valore k è presente in posizione i Il valore k

NON è presente

RicercaSequenziale ( V[ ], N, k)

Fine V

V V F

F

F

(3)

VETTORE ORDINATO

RICERCA SEQUENZIALE: può essere utilizzata solo se il vettore è ordinato.

Si confrontano sequenzialmente (uno dopo l'altro) tutti gli elementi del vettore con il valore K cercato:

finché non si trova V[i] = K (ricerca con successo) oppure

finché l'elemento del vettore non contiene un valore maggiore di quello cercato, se il vettore è ordinato in modo crescente (finché l'elemento del vettore non contiene un valore minore di quello cercato, se il vettore è ordinato in modo decrescente) (ricerca senza successo) oppure

finché non sono stati considerati tutti gli elementi del vettore senza trovarne nessuno uguale a K perché sono tutti minori del valore cercato, se il vettore è ordinato in modo crescente (oppure perché sono tutti maggiori del valore cercato, se il vettore è ordinato in modo decrescente) (ricerca senza successo).

L'operazione di ricerca termina quindi per elemento trovato o elemento non trovato (anche prima di aver esaminato tutti gli elementi del vettore).

Numero di confronti

Due valutazioni diverse a seconda dell'esito della ricerca:

• ricerca con successo e senza 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

II numero medio di confronti, dividendo per N, risulta (N+1)/2.

RICERCA BINARIA O DICOTOMICA O LOGARITMICA: può essere utilizzata solo se il vettore è ordinato.

Si confronta il valore cercato con l'elemento in posizione centrale del vettore e si continua a cercare nel semivettore inferiore o superiore a seconda che il valore K cercato sia più piccolo o più grande dell'elemento con cui si sta confrontando. Il procedimento continua iterativamente esaminando ogni volta il semivettore inferiore o superiore via via individuato.

La ricerca termina per elemento trovato (ricerca con successo) o per sottovettore costituito da un solo elemento (ricerca senza successo).

Numero di confronti

L'algoritmo è il più veloce tra quelli di ricerca basati sul confronto di chiavi.

• ricerca senza successo:

in un vettore di dimensione N = 2 h – 1 l'algoritmo deve compiere h =log2(N+1) passi (e quindi confronti).

In generale se N è la dimensione del vettore l’algoritmo termina in int (log2 N)+1 passi.

• ricerca con successo:

i confronti possono essere di meno di quelli per la ricerca senza successo.

(4)

RICERCA in un VETTORE ORDINATO

• Vettore V di dimensione N

• Valore da ricercare: K

i < N and Trovato = falso

and V[ i ] ≤ k

V [ i ] = k i = 0

i = i + 1

Trovato = falso

Trovato = vero

Trovato = vero

Il valore k è presente in posizione i Il valore k

NON è presente

RicercaSequenziale_VOrd ( V[ ], N, k)

Fine V

V V F

F

F

(5)

RICERCA in un VETTORE ORDINATO

• Vettore V di dimensione N

• Valore da ricercare: K

• isx e idx indici sinistro e destro del sottovettore

• imed indice dell’elemento centrale del sottovettore

Trovato = falso and isx ≤ idx V [ imed ] = k

isx = 0

idx = imed – 1

Trovato = falso

Trovato = vero

Trovato = vero

Il valore k è presente in posizione imed Il valore k

NON è presente

RicercaBinaria ( V[ ], N, k)

V

V V F

F F

idx = N-1

imed = (isx + idx) / 2

k > V [ imed ]

isx = imed + 1 V

F

Riferimenti

Documenti correlati

[r]

[r]

(2) un nodo corrispondente ad una soluzione parziale la somma dei cui elementi pi` u tutti gli elementi non ancora considerati ` e inferiore a c ha come foglie del suo sottoalbero

Nel piano, due vettori non nulli fra loro ortogonali sono sempre linearmente indipendenti; nello spazio, due vettori non nulli fra loro ortogonali sono sempre linearmente

Ora, un punto che partendo da O si sposta prima nel punto di coordinate v1 , v2 , 0 e poi si sposta di v3 unita’ nella direzione dell’asse z, descrive i due cateti di un

Fissi- amo nello spazio un sistema di riferimento cartesiano ortogonale monometrico con origine nel punto O, ed identifichiamo i vettori di R 3 con vettori applicati

Le coordinate di un vettore b rispetto ad una base ortogonale, cioe’ una base formata da tre vettori u, v, w fra loro ortogonali, sono particolarmente facili da ricavare..

Piu’ in generale, si definiscono un’operazione di addizione fra matrici dello stesso tipo, un’operazione di moltiplicazione di una matrice per uno scalare, e si prova che il prodotto