Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Ricerca nei vettori in Java, Schemi e mappe concettuali di Programmazione Java

Argomenti trattati • Ricercare un valore in un Vettore • Ricerca Lineare (o Sequenziale) • Ricerca Binaria • Confronto tra i due algoritmi

Tipologia: Schemi e mappe concettuali

2025/2026

In vendita dal 17/04/2026

airruh
airruh 🇮🇹

4.7

(17)

73 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Ricerca nei Vettori
Algoritmi di Ricerca Lineare e Ricerca Binaria in Java
Argomenti trattati
• Ricercare un valore in un Vettore
• Ricerca Lineare (o Sequenziale)
• Ricerca Binaria
• Confronto tra i due algoritmi
1. Ricercare un valore in un Vettore
Il problema della ricerca di un elemento in un vettore è molto diffuso in informatica. Data una
sequenza di elementi sotto forma di vettore, si vuole determinare se uno specifico elemento è
presente o meno all'interno della sequenza.
In questo modulo faremo riferimento a vettori di tipo numerico (in particolare di tipo intero), ma lo
stesso concetto si può applicare a qualsiasi altro tipo di dato.
Due scenari possibili
Esistono due casi distinti quando occorre cercare un valore all'interno di un vettore:
1. La sequenza di elementi del Vettore NON è ordinata si usa la Ricerca Lineare
2. La sequenza di elementi del Vettore è ordinata si usa la Ricerca Binaria
La scelta dell'algoritmo dipende fondamentalmente da quale dei due casi ci troviamo.
2. Ricerca Lineare (o Sequenziale)
Quando si usa?
La Ricerca Lineare (detta anche Ricerca Sequenziale) si utilizza quando la sequenza di elementi
del vettore non è ordinata. Poiché non è possibile stabilire a priori in quale parte del vettore
potrebbe trovarsi l'elemento cercato, è necessario analizzare tutti gli elementi in sequenza e
confrontarli uno ad uno con il valore da ricercare.
Se si vuole trovare solo la prima occorrenza del valore, è possibile terminare la ricerca non
appena il valore viene trovato, senza scorrere l'intera sequenza.
pf3
pf4

Anteprima parziale del testo

Scarica Ricerca nei vettori in Java e più Schemi e mappe concettuali in PDF di Programmazione Java solo su Docsity!

Ricerca nei Vettori

Algoritmi di Ricerca Lineare e Ricerca Binaria in Java

Argomenti trattati

  • Ricercare un valore in un Vettore
  • Ricerca Lineare (o Sequenziale)
  • Ricerca Binaria
  • Confronto tra i due algoritmi

1. Ricercare un valore in un Vettore

Il problema della ricerca di un elemento in un vettore è molto diffuso in informatica. Data una sequenza di elementi sotto forma di vettore, si vuole determinare se uno specifico elemento è presente o meno all'interno della sequenza.

In questo modulo faremo riferimento a vettori di tipo numerico (in particolare di tipo intero), ma lo stesso concetto si può applicare a qualsiasi altro tipo di dato.

Due scenari possibili

Esistono due casi distinti quando occorre cercare un valore all'interno di un vettore:

  1. La sequenza di elementi del Vettore NON è ordinata → si usa la Ricerca Lineare
  2. La sequenza di elementi del Vettore è ordinata → si usa la Ricerca Binaria

La scelta dell'algoritmo dipende fondamentalmente da quale dei due casi ci troviamo.

2. Ricerca Lineare (o Sequenziale)

Quando si usa?

La Ricerca Lineare (detta anche Ricerca Sequenziale) si utilizza quando la sequenza di elementi del vettore non è ordinata. Poiché non è possibile stabilire a priori in quale parte del vettore potrebbe trovarsi l'elemento cercato, è necessario analizzare tutti gli elementi in sequenza e confrontarli uno ad uno con il valore da ricercare.

Se si vuole trovare solo la prima occorrenza del valore, è possibile terminare la ricerca non appena il valore viene trovato, senza scorrere l'intera sequenza.

Come funziona?

La logica è molto semplice: si analizzano tutti gli elementi del vettore a partire dal primo, e ogni elemento viene confrontato con il valore cercato. Se il confronto dà esito positivo (i due elementi sono uguali), l'algoritmo termina restituendo che il valore è stato trovato.

Esempio: cercare il valore 55 in [5, 3, 12, 1, 37, 55, 22, 11, 88, 32]

L'algoritmo parte dall'indice 0 e confronta ogni elemento con 55. Quando arriva alla posizione 5 (valore 55 = valore cercato), la ricerca si interrompe con esito positivo.

Diagramma a blocchi – logica dell'algoritmo

La funzione ricercaLineare(array[], valore) funziona come segue:

1. Inizializza trovato = false e l'indice i = 0 2. Finché i < array.length E trovato == false : 3. Se array[i] == valore → imposta trovato = true 4. Altrimenti incrementa i++ 5. Restituisce trovato

Codifica Java

public static boolean ricercaLineare(int[] array, int valore) { boolean trovato = false; for (int i = 0; i < array.length && !trovato; i++) { if (array[i] == valore) { trovato = true; } } return trovato; }

n Nota sulla complessità: nel caso peggiore la Ricerca Lineare esamina tutti gli n elementi del vettore. La sua complessità è O(n) : al crescere della dimensione del vettore, il tempo di ricerca cresce proporzionalmente.

3. Ricerca Binaria

Quando si usa?

La Ricerca Binaria si utilizza quando la sequenza di elementi è ordinata. È molto più efficiente della Ricerca Lineare perché, anziché scorrere tutti gli elementi uno ad uno, ad ogni passo dimezza il numero di elementi ancora da esaminare.

else sup = med - 1; } } return trovato; }

4 Nota sulla complessità: la Ricerca Binaria ha complessità O(log n). Su un vettore di 1.000.000 elementi ordinati, bastano al massimo circa 20 confronti per trovare qualsiasi valore (o stabilirne l'assenza). Requisito indispensabile: il vettore deve essere ordinato.

4. Confronto tra i due algoritmi

Caratteristica Ricerca Lineare Ricerca Binaria

Vettore richiesto Non ordinato Ordinato

Strategia Scansione sequenziale Dimezzamento dell'intervallo

Complessità (caso peggiore) O(n) – esamina tutti gli elementi^ O(log n) – molto più rapida

Variabili chiave i (indice corrente) inf, med, sup

Condizione di uscita Elemento trovato o fine vettore Trovato o inf > sup

Struttura Java Ciclo for Ciclo while

Quando scegliere quale algoritmo?

  • Ricerca Lineare : da preferire quando il vettore non è ordinato o quando la struttura dati è piccola e il costo di ordinamento sarebbe superiore al beneficio della ricerca binaria.
  • Ricerca Binaria : da preferire quando il vettore è già ordinato o quando si devono effettuare molte ricerche sullo stesso vettore (in quel caso conviene ordinarlo una volta e usare la ricerca binaria ogni volta).

Regola pratica: se il vettore è ordinato, usa sempre la Ricerca Binaria. La sua efficienza O(log n) la rende enormemente più veloce della Ricerca Lineare O(n) su vettori di grandi dimensioni.