18 Marzo 2010 Es. 1. [SelectionSort vs InsertionSort] a. Implementazione del SelectionSort. b. Implementare dell'InsertionSort. c. Implementazione della funzione int* random_sorted_array(int size,int min_value,int delta,int seed); Che genera una sequenza non decrescente di SIZE interi, il cui valore piu' piccolo e' MIN_VALUE, DELTA e' la differenza massima tra due elementi consecutivi dell'array, e SEED e' il seme necessario per creare la sequenza pseudo-random. d. Confronto di SelectionSort ed InsertionSort su input ordinati. Es. 2. [Sudoku] a. Implementare un algoritmo che data in input una griglia di Sudoku 3x3 riempia, se possibile, le rimanenti caselle. Per farlo definire le seguenti funzioni: void print_matrix(int matrix[SIZE][SIZE]); Funzione ausiliaria che stampa la matrice in input. (SIZE e' una macro che ha valore 3) int find_conflicts(int matrix[SIZE][SIZE],int last_assigned_cell_row,int last_assigned_cell_col); Restituisce 0 se l'ultimo assegnamento non ha causato conflitti, 1 altrimenti. int solve_sudoku(int matrix[SIZE][SIZE]); Restituisce 1 se lo schema di Sudoku in input ammette soluzione, 0 altrimenti. In caso affermativo MATRIX e' modificata aggiungendo i valori delle celle vuote. (Nella matrice in input una cella e' vuota se contiene il valore 0) b. Generalizzare la soluzione precedente a matrici 9x9 (in cui alcune delle caselle possono essere inizializzate con un valore !=0).