Algoritmi e Strutture Dati I – La Spezia
Progetto di algoritmi semplici:
1. Scrivere un algoritmo che ricevuto in ingresso un vettore di interi
A[1..n] e un intero v, trova un indice i tale che A[i]=v.
2. Usando la figura 1.2 a pag. 4 [CLR] come modello, illustrare il
funzionamento di INSERTION-SORT sull’array
A = <31,41,59,26,41,58>
3. Riscrivere l’algoritmo INSERTION-SORT per ordinare in ordine
decrescente.
4. Realizzare in Java l’algoritmo INSERTION-SORT come
procedura ricorsiva. Infatti, per ordinare un vettore A[1..n],
possiamo ricorsivamente ordinare A[1..n-1] e poi inserire A[n]
nella posizione opportuna.
5. Realizzare in Java l’algoritmo Selection Sort come procedura
ricorsiva.
6. Usando la figura 1.3 a pag. 14 [CLR] come modello, illustrare il
funzionamento di MERGE-SORT sull’array
A = <3,41,52,26,38,57,9,49>
7. Realizzare in Java l’algoritmo MERGE(A,p,q,r) di pag.13
8. Realizzare in Java l’algoritmo Ricerca-Binaria.
9. Osservare che il While-loop presente in INSERTION-SORT
esegue una ricerca lineare per trovare la posizione dell’elemento
A[j] in A[1..j-1]. Apporterebbe qualche miglioramento alla
complessità l’uso di Ricerca-binaria ?
10.Realizzare in Java un algoritmo che calcola la seguente funzione:
T(1) = 1, T(2) = 1, T(n) = T(n-1) * T(n-2) + T(n-3) + 1 per n  3
11.Scrivere in pseudo-codice una procedura che calcola il primo e
secondo elemento di un insieme.
12.Scrivere una procedura che calcola i primi k elementi di un
insieme, dove k è un parametro in input alla procedura.