Osposobljavanje studenata za:
• razumijevanje i primjenu temeljnih znanja o analizi složenosti algoritama,
• trajno usvajanje i produbljivanje znanja iz područja dinamičke alokacije memorije, te baratanje apstraktnim tipovima podataka kao što su stog, red lista te binarno stablo,
• razumijevanje i primjena jednostavnih i složenih algoritama za sortiranje.
očekivani ishodi učenja
Studenti će nakon uspješno savladanog predmeta moći:
1. definirati temeljne pojmove vezane uz analizu složenosti algoritama,
2. objasniti i realizirati postupke dodavanja, brisanja, pretraživanja elemenata u jednostruko i dvostruko vezanim listama,
3. realizirati funkcije za dodavanje elemenata u stog i red, te njihovo uklanjanje,
4. prepoznati primjenu apstraktnih tipova podataka u rješavanju problema,
5. opisati postupke dodavanja, brisanja i pretraživanja elemenata elemenata u binarno stablo za pretraživanje,
6. koristiti osnovne postupke balansiranja AVL stabala,
7. imenovati i realizirati različite rekurzivne algoritme za pretraživanje.
Analiza složenosti algoritma. Rekurzivni i iterativni algoritmi. Polje. Lista. Red. Stog. Stabla. Jednostavni i složeni algoritmi za sortiranje. Algoritmi za pretraživanje (sekvencijalno, binarno pretraživanje). Hashing.
preporučena literatura
Mark Allen Weiss, “Data Structures and Algorithm Analysis in C”,(poglavlja 1-6)
dopunska literatura
Robert Sedgewick, “Algorithms in C”
Richard Neapolitan, Kumarrs Naimipour, “Foundations of Algorithms”
jezik poduke
Hrvatski/engleski
način praćenja kvalitete i uspješnosti izvedbe svakog predmeta i/ili modula
Mišljenja studenata o kvaliteti nastave putem anketa.
Nastavnici koji podučavaju srodne predmete surađuju i zajednički vode brigu o kvaliteti nastave.
Povremeno promatranje i evaluacija nastave od strane predstojnika odsjeka/šefa katedre, itd.
ispit (način polaganja, ispitni rokovi)
Ispit se sastoji od teoretskog i laboratorijskog dijela. Jednom kada se neki od dijelova položi, ocjena vrijedi do kraja akademske godine.
Laboratorijski dio se polaže na računalima po završetku laboratorijskih vježbi, te nakon toga na svakom ispitnom roku.
Teoretski dio se polaže pismeno i to podijeljen u dva kolokvija. Tijekom semestra bit će organiziran jedan kolokvij, a na svim ostalim rokovima studenti mogu birati koji će kolokvij polagati (mogu i oba istovremeno).
Uvjeti za pozitivnu ocjenu su: odrađene laboratorijske vježbe 100%, pozitivna ocjena iz laboratorijskih vježbi i više od 50% bodova na svakom od kolokvija.
Konačna ocjena se računa na slijedeći način:
Ocjena = 0,5*L + 0,5*T
L - ocjena iz laboratorijskih vježbi,
T – ocjena iz teoretskog dijela.
Ocjena na teoretskom djelu ispita u ovisnosti o broju bodova se formira na slijedeći način:
50% do 61% - dovoljan (2),
62% do 74% - dobar (3),
75% do 87% - vrlo dobar (4),
88% do 100% - izvrstan (5).
Ispitni rokovi: Prema kalendaru nastave.
Nastavne jedinice za Predavanja
Broj sati
1.
Uvodno predavanje o predmetu, ponavljanje osnovnih elemenata C programskog jezika (rekurzivne funkcije, strukture, pokazivači, dinamičko alociranje memorije, rad s datotekama).
2 sata
2.
Matematička pozadina analize algoritam i proračun vremena izvršavanja algoritma
2 sata
3.
Apstraktni tipovi podataka, jednostavna implementacija vezane liste i osnovnih operacija u vezanoj listi
2 sata
4.
Dvostruko vezane liste, cirkularne liste
2 sata
5.
Stog, primjena stoga (okvir stoga, balansiranje simbola), red
2 sata
6.
Binarna stabla za pretraživanje. i osnovne operacije u binarnom stablu za pretraživanje
2 sata
7.
AVL stabla
2 sata
8.
Osnovne metode sortiranja.
2 sata
9.
Sortiranje indeksa i pokazivača, sortiranje vezanih lista.
2 sata
10.
"ShellSort", "QuickSort"
2 sata
11.
"Mergesort", "Heapsort"
2 sata
12.
Pretraživanje po sekvencijalno i binarno pretraživanje
2 sata
13.
Grupiranje podataka (engl. hashing)
Nastavne jedinice za Laboratorijske vježbe
Broj sati
1.
Osnovne operacije u nizu struktura.
2 sata
2.
Dodavanje novog elementa na početak i kraj vezane liste, ispis vezane liste.
2 sata
3.
Upis i čitanje vezane liste iz datoteke.
2 sata
4.
Pretraživanje vezane liste i brisanje elementa iz liste.
2 sata
5.
Dodavanje novog elementa u vezanu listu ispred i iza određenog elementa.
2 sata
6.
Sortiranje vezane liste.
2 sata
7.
Unija i presjek vezanih listi.
2 sata
8.
Stvaranje i ispis binarnog stabla.
2 sata
9.
Sortiranje pomoću "exchange sort" i "selection sort" algoritama.
2 sata
10.
Sortiranje pomoću "insertion sort" i "bubble sort" algoritama.
2 sata
11.
Sortiranje pomoću "Shellsort" algoritma.
2 sata
12.
Sortiranje pomoću "mergesort" algoritma.
2 sata
13.
Sortiranje pomoću "heapsort" algoritma.
2 sata
Niste više prijavljeni
Istekla vam je prethodna prijava te se morate ponovno prijaviti.
Nastao je problem u radu sustava
Informacije o problemu smo pohranili i nastojat ćemo ga riješiti. Ako vas ova greška sprječava da obavite nešto važno, možete nas odmah kontaktirati na helpdesk@fesb.hr.
Vaš preglednik nije podržan
Koristite web preglednik koji nije podržan. Za puno korisničko iskustvo, preuzmite najnoviju inačicu vašeg preglednika.