• 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

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

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

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

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à