1. Se dă următoarea lista de valori numerice: 7, 20, 15, 45, 6,
7, 23, 24, -5, 19. a. Descrieti in mod detaliat metoda bubble-sort (rationament + etape), implementati in Java algoritmul si prezentati evolutia valorilor listei de mai sus pentru primele 4 iteratii. b. Descrieti in mod detaliat metoda select-sort (rationament + etape), implementati in Java algoritmul si prezentati evolutia valorilor listei de mai sus pentru primele 4 iteratii. c. Descrieti in mod detaliat metoda insert-sort (rationament + etape), implementati in Java algoritmul si prezentati evolutia valorilor listei de mai sus pentru primele 4 iteratii. d. Descrieti in mod detaliat metoda quicksort (rationament + etape), implementati in Java algoritmul si prezentati evolutia valorilor listei de mai sus pentru primele 4 iteratii. e. Descrieti in mod detaliat metoda merge-sort (rationament + etape), implementati in Java algoritmul si prezentati evolutia valorilor listei de mai sus pentru primele 4 iteratii. 2. Pentru fiecare dintre punctele 1a, ..., 1e calculati si descrieti complexitatea algoritmului pe care l-ati implementat. 3. Se dă următoarea lista de valori numerice: 7, 20, 15, 45, 6, 7, 23, 24, -5, 19. a. Descrieti in mod detaliat algoritmul de cautare secventiala, implementati in Java algoritmul si prezentati evolutia primelor 3 iteratii ale algoritmului. b. Descrieti in mod detaliat algoritmul de cautare divide- et-impera (maniera secventiala), implementati in Java algoritmul si prezentati evolutia primelor 3 iteratii ale algoritmului in cazul in care valorile de la pct. 3 ar fi aprioric sortate crescator. c. Descrieti in mod detaliat algoritmul de cautare divide- et-impera (maniera recursiva), implementati in Java algoritmul si prezentati evolutia primelor 3 iteratii ale algoritmului in cazul in care valorile de la pct. 3 ar fi aprioric sortate crescator. d. Desenati un arbore binar de cautare pentru valorile de la pct. 3 (radacina este nodul cu valoarea 20). Definiti o functie recursiva de cautare in arbori binari si prezentati evolutia stivei pentru apelul cautare(15). 4. Implementati in Java in mod recursiv o functie pentru calculul sumei numerelor naturale pare mai mici decat un N dat. Prezentati evolutia valorilor din stiva pentru primele 3 apeluri in cazul in care N=20. 5. Implementati in Java in mod recursiv o functie pentru calculul sirului lui Fibonacci. Prezentati evolutia primelor 3 niveluri din stiva pentru N=5. 6. Fiind data o suma S si n monede de valori date, sa se determine toate posibilitatile de plata a sumei S cu aceste monede. Implementati rezolvarea in Java prin metoda backtracking. Prezentati evolutia valorilor principale din algoritm pentru primele 4 etape de rulare ale algoritmului in cazul in care S=20 si m1=5 lei, m2=3 lei, m3=1 leu. Din fiecare tip de moneda (m) sunt sunt disponibile cate 5 fise. 7. Definiti un vector in care aveti N valori diferite. Implementati in Java un program care sa afiseze toate permutarile acelei multimi, prin metoda backtracking.