Opće informacije
Naziv predmeta Algoritmi i strukture podataka
Studijski program Preddiplomski stručni studij Računarstva
Status predmeta Obvezatan
Godina 1. (1. semestar)
Bodovna vrijednost i način izvođenja nastave ECTS 6
Sati (P+V+S) 15+30+0
Opis predmeta

Ciljevi predmeta

Studentu se mora predstaviti paradigma strukture podataka – složenih podataka. mora razumjeti pojave i podatke iz realnog svijeta koje mora moći predstaviti složenom strukturom: listom, drvetom (tree), grafom. mora znati što znači indeksacija i mora razumjeti kako radi bisekcija. Naznačiti primjenu struktura podataka u programskim jezicima
Student mora biti upoznat sa XML, JSON i još nekim načinima formatiranog zapisa podataka koji se koriste u programskim tehnologijama.

Očekivani ishodi učenja

Opisati što je algoritam, objasniti zapis algoritma, analizirati jednostavnije algoritme te definirati rekurzivne algoritme. Formulirati osnovne algoritme pseudokodom, dijagramom tijeka. Usporediti postojeće algoritme, analizirati složenije algoritme te rješavati probleme upotrebom rekurzije. Opisati i koristiti jednostavne strukture
podataka (lista, stog, red). Kreirati rješenja bazirana na jednostavnijim strukturama podataka (lista, stog, red).
Opisati i koristiti složenije strukture podataka (stablo, gomila, prioritetni red). Kreirati rješenja bazirana na složenijijm strukturama podataka (stablo, gomila, prioritetni red). Opisati i koristiti algoritme sortiranja. Konstruirati rješenja bazirana na algoritmima sortiranja.
Opisati i koristiti algoritme pretraživanja. Konstruirati rješenja bazirana na algoritmima pretraživanja. Definirati tehnike adresiranja te prepoznati primjene tehnika adresiranja. Koristiti tehnike adresiranja za rješavanje problema.

Sadržaj

Što je algoritam? Složenost algoritma. Osnovni tipovi podataka. Naredbe za kontrolu programskog toka.
Strategije programiranja. Strukture podataka. Niz, lista, vektor, skup, stog, stablo, prioritetni red, graf, rekurzija.
Uređeni i neuređeni kontejneri. Pretraživanje: sekvencijalno, binarno, stabla. Redovi. Sortiranje: bubble, heap, quick, binary, radix. Dinamički algoritmi: Fibonnacijev niz, binomni koeficijenti, optimalno binarno stablo, množenje niza matrica. Grafovi: minimalno stablo, Dijkstrov algoritam. Osnove složenosti algoritama. Rješavanje težih problema: “Problem trgovačkog putnika”, “Problem kineskog poštara”. Teorija igara: jednostavna rješenja, alfa-beta algoritam