Predmet: Uvod u algoritme
(17 -
ESI053) Osnovne informacije
Matične organizacione jedinice predmeta
Program predmeta
Program se primenjuje od 23.07.2017.. Sticanje opštih znanja o algoritmima i strukturama podataka. Razumevanje složenosti algoritama i učenje brojnih algoritama za česte programerske probleme.
Naučeni osnovni algoritmi i strukture podataka. Stečena znanja o njihovoj implementaciji i praktično razumevanje složenosti izvršavanja.
Osnove algoritama (definicija, osobine, analiza algoritama, opis algoritma, osnovni problemi, složenost algoritma, asimptotske notacije …). Problem pretrage (presudo kod, linearna pretraga, binarna pretraga). Problem sortiranja i algoritmi sortiranja (selection sort, Insertion sort, rekurzija i tehnika podeli i vladaj, merge sort, quicksort, Heap struktura i heapsort, red sa prioritetima, …). Algoritmi sortiranja linearne složenosti (counting sort, radix sort, bucket sort). Redosledna statistika (opis problema, minimum i maksimum, medijana, select algoritam). Strukture podataka (osnovne strukture podataka, stek i red, povezane liste, tipovi lista, operacije, implementacija lista, stabla, binarna stabla, binarno stablo pretrage, AVL stablo, …). Heširanje (rečnik podataka, operacije, funkcije heširanja, kolizije, otvoreno adresiranje i ulančavanje, asimptotska složenost algoritma, …). Grafovi (definicija, primena i tipovi grafova, usmereni aciklični graf, predstavljanje grafova (matrica i lista susedstva). Algoritmi rada sa grafovima (topološko sortiranje, obilazak grafa, pretraga u širinu, pretraga u dubinu, …). Najkraći put u težinskom grafu (najkraći put u DAG, Dijkstra algoritam, Bellman-Ford algoritam, …). Klasifikacije problema (P i NP problemi, NP-kompletan problem, NP-teški problemi, eksponencijalni problemi, primeri problema). Dinamičko programiranje (primena, primeri). Paralelni algoritmi (sekvencijalni i paralelni algoritmi, Amdalov zakon, poteškoće u implementaciji, primeri). Primeri algoritama sa primenama u kriptografiji, kompresiji podataka, rad sa stringovima, ...) Predavanja; auditorne i računarske vežbe; konsultacije.
|