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