ASD - Esercitazioni
Corso di
Algoritmi e strutture dati
Anno accademico 2006-2007
Fondamentali - I
3 esercitazioni in tutto
 Ordinate in difficolta` crescente
 Linguaggio : Java ™
 Non sono obbligatorie (per avere fino a 22)

… sul serio: pensateci!!!
Fondamentali - II
Gruppi di 3-4 persone
 Consegna tramite email (1 per gruppo)

[email protected]
 Subject : ASD-ES<n>
 Allegato : <IDgruppo>_ES<n>.zip

Esempio :
Subject : ASD-ES1
Allegato : CippaLippa_ES1.zip
Esercitazione 0 – Gruppi

Inviare al piu` presto una mail con il nome
del gruppo e dei suoi componenti
 Subject
: ASD-ES0
 Body : GRUPPO: <nomeGruppo>
COMPONENTI:
Cognome ; Nome ; email
Cognome ; Nome ; email
Cognome ; Nome ; email

Notificate le eccezioni (stesso subject) :
“Cercasi compagnia…”
“Faccio da me!”
Esercitazione 1 - Overview

Algoritmi di ordinamento e selezione
 Quicksort
 Knockout
Tournament
 Median of Medians

Tutte cose gia` viste a lezione !
… = esercitazione facile. Aspettatevi di peggio!
Esercitazione 1 – Preliminari

Creare un array di interi random:
import java.util.Random;
….
int [] array = new int [1000];
Random gen = new Random(0);
for (int i=0; i<1000; i++)
array [ i ] = gen.nextInt (1000);

Il codice va commentato in modo adeguato
Esercitazione 1 - Quicksort


Riferimento: lezione omonima
Implementare l’algoritmo come descritto a
lezione, nel seguente metodo:
Esercitazione 1 – Knockout tournament


Riferimento : lezione sulle Statistiche d’Ordine – Albero
del torneo
Implementare un metodo che ritorni il k-esimo valore di
un array utilizzando un albero di torneo.
Esercitazione 1 - Alberi




Per implementare l’algoritmo di knockout
tournament in modo furbo, e` necessario gestire
uno heap per tenere traccia dei confronti
Implementare lo heap utilizzando le seguenti
classi java (prossima slide)
Il metodo insert(int n) deve realizzare
l’inserimento di un valore nello heap in modo
opportuno
Il metodo visit() deve stampare a video tutti gli
elementi dello heap secondo un ordine che vi
sembra ragionevole (spiegare perche`)
Esercitazione 1 - BTree
Esercitazione 1 – Median of Medians


Riferimento : lezione sulle Statistiche d’Ordine –
Selezione deterministica
Implementare un metodo che ritorni il k-esimo valore di
un array utilizzando la selezione deterministica del
mediano dei mediani
Esercitazione 1 – SortingAlgos.java
Esercitazione 1 – Cosa consegnare

Nel file .zip allegato alla mail :
 File
SortingAlgos.java
 Altri file di commento al lavoro svolto (solo se
strettamente necessari)
Esercitazione 1 - Valutazione e discussione

Scadenza per la consegna :
Domenica 5 novembre 2006

Valutazione :
Insuff. Suff.
Buono
Ottimo
E` di tipo qualitativo (se ne terra` conto all’orale)

Discussione :
Concorderemo l’orario subito dopo la consegna