• Non ci sono risultati.

1 Esercizio: Dimostrare che l’invariante di min () `e rispettata

N/A
N/A
Protected

Academic year: 2021

Condividi "1 Esercizio: Dimostrare che l’invariante di min () `e rispettata"

Copied!
1
0
0

Testo completo

(1)

Appunti lezione – Capitolo 1 Introduzione

Alberto Montresor 14 Settembre, 2019

1 Esercizio: Dimostrare che l’invariante di min () `e rispettata

L’invariante da dimostrare `e la seguente: All’inizio di ogni iterazione del ciclo for, la variabile min contiene il minimo parziale degli elementi S[1 . . . i − 1].

• Inizializzazione: All’inizio della prima iterazione, il valore della variabile i `e pari a 2. Essendo min inizializzato ad S[1], esso `e banalmente il minimo del sottovettore S[1 . . . 1].

• Conservazione: All’inizio di una iterazione, min contiene il valore del minimo di S[1 . . . i − 1]. Al termine, i viene incrementata di 1 e min viene confrontanto con S[i], ed eventualmente aggiornato con tale valore, se pi`u basso. Quindi all’inizio del ciclo successivo min contiene il minimo di S[1 . . . i], come richiesto.

• Conclusione: al termine del ciclo, il valore della variabile i `e pari a n + 1. Quindi min contiene il minimo del vettore S[1 . . . n], ovvero il valore che volevamo ottenere.

2 Esercizio: Dimostrare che binarySearch () `e corretta.

La correttezza si dimostra per induzione sulla dimensione n del vettore.

• Passo base: Se n = 0, ovvero se i > j, il valore cercato non `e presente e correttamente l’algoritmo ritorna 0.

• Ipotesi induttiva: vogliamo dimostrare che l’algoritmo `e corretto per la dimensione n, e supponiamo di aver dimostrato che l’algoritmo `e corretto per tutte le dimensioni n0< n.

• Passo induttivo: Sia m l’elemento mediano; se S[m] = v, l’elemento `e stato trovato e correttamente l’algoritmo ritorna l’indice m. Se invece S[m] 6= v, il valore deve necessariamente trovarsi negli elementi S[i . . . m − 1] (se minore) o S[m + 1 . . . j] (se maggiore). Tali sottovettori hanno dimensione minore di n, e quindi la ricerca dell’elemento in essi d`a origine ad un risultato corretto.

1

Riferimenti

Documenti correlati

CEREALI E COLTIVAZIONI INDUSTRIALI Modalità Provincia Prezzo U.M.(p) Quantità U.M.(q) Grano tenero. Frumento

Le quotazioni delle singole province si riferiscono ai diversi contratti conclusi nella settimana di riferimento e sono calcolate come media ponderata dei prezzi sulle

avena Euro n.q.. orzo vestito naz. arrivo alla rinfusa) Euro n.q... Tritello di

(prezzi medi della settimana precedente) - I prezzi si intendono per prodotto di I cat. selezionato ed imballato reso franco magazzino produttore a peso netto

Le quotazioni delle singole regioni si riferiscono ai diversi contratti conclusi nella settimana di riferimento e sono calcolate come media ponderata dei prezzi sulle quantità

CEREALI E COLTIVAZIONI INDUSTRIALI Modalità Regione Prezzo U.M.(p) Quantità U.M.(q) Grano tenero. Frumento

CEREALI E COLTIVAZIONI INDUSTRIALI Modalità Regione Prezzo U.M.(p) Quantità U.M.(q) Grano duro. Frumento

avena Euro n.q.. orzo vestito naz. arrivo alla rinfusa) Euro n.q... Tritello di