Ispit Flashcards

1
Q

Šta je to struktura podataka?

A

Struktura podataka – “statički” aspekt nekog programa (ono sa čime se radi)  skupina varijabli u nekom programu i veza između njih.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Šta je to algoritam?

A

Algoritam – “dinamički” aspekt programa (ono što se radi)  konačni niz instrukcija, od kojih svaka ima jasno značenje i može biti izvršena u realnom vremenu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Šta je to program?

A

program - opis algoritma koji u nekom programskom jeziku jednoznačno određuje što računalo treba napraviti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Šta predstavlja programiranje?

A

programiranje - naučiti sintaksu nekog proceduralnog jezika i steći osnovna intuitivna znanja glede algoritmizacije problema opisanog riječima

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

algoritmi + strukture podataka = programi (Wirth)

Za šta ih koristimo?

A
kako osmisliti algoritme?
kako strukturirati podatke?
kako formulirati algoritme?
kako verificirati korektnost algoritama?
kako analizirati algoritme?
kako provjeriti (testirati) program?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Koja je svrha analize algoritma?

A

svrha
intelektualna razonoda
predviđanje vremena izračuna
pronalaženje učinkovitijih algoritama

pretpostavke:
sekvencijalno jednoprocesorsko računalo
fiksno vrijeme dohvata sadržaja memorijske lokacije
vrijeme obavljanja operacija (aritmetičke, logičke, pridruživanje, poziv funkcije) je ograničeno nekom konstantom kao gornjom granicom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Koji je izbor skupova podataka za iscrpno testiranje algoritma:

A

ponašanje u najboljem slučaju (best case scenario)
ponašanje u najgorem slučaju (worst case scenario)
prosječno (tipično) ponašanje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Šta predstavlja “a priori”?

A

Tajanje izvođenja algoritma (u najgorem slučaju) kao vrijednost funkcije nekih relevantnih argumenata (npr. broja podataka)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Šta predstavlja “a posteriori”?

A

Statistika dobivena mjerenjem na računalu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Zašto proračunavamo algoritme?

A

Teorijska vrijednost:
Jezgra računarstva

Praktična primjena:
Korištenje pri rješavanju problema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Navesti strategije oblikovanja algoritma

A
Korištenje (računalne) sile
Podijeli pa vladaj
Smanji pa vladaj
Transformiraj pa vladaj
Balansiranje između zauzimanja prostora i vremena izvršavanja
Pohlepni pristup
Dinamičko programiranje
Iteracijski napredak
Unatražno praćenje
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Navesti klase problema

A
Sortiranja
Pretraživanja
Procesuiranje stringova (alfanumeričkih nizova)
Problemi grafova
Kombinatorni problemi
Geometrijski problemi
Numerički problemi
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Navesti primjere algoritma sortiranja

A
  1. Selection sort
  2. Bubble sort
  3. Heap sort
  4. Merge sort
  5. Quick sort
  6. Insertion sortt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Primjeri algoritama traženja:

A

Sekvencijalno traženje

Binarno traženje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Neformalna definicija grafa glasi:

A

Neformalna definicija: graf je skup čvorova od kojih su neki povezani vezama koje nazivamo bridovima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Primjeni algoritama grafa:

A

Prolazak kroz graf

Topološko sortiranje

17
Q

Predsnosti i nedostaci korištenja strategije (računalne sile)?

A

Prednosti korištenja strategije (računalne) sile:
Jednostavno oblikovanje algoritma
Mogućnost česte primjene
Lako razumljivi algoritmi

Nedostatci:
Često vrlo neefikasni algoritmi
Spori algoritmi

18
Q

Primjeri kod kojih se koristi strategija podijeli i vladaj:

A

Merge i quick sort
Binarno traženje
Množenje velikih cijelih brojeva
Množenje velikih matrica

19
Q

Primjeri strategija: smanji i vladaj

A

Reduciranje instance problema prema manjim instancama istog problema
Rješavanje manjih instanci
Proširivanje rješenja manje instance kao rješenja glavnog problema.

Primjer: Euklidov algoritam
Primjeri strategija: smanji i vladaj

20
Q

Primjeri strategija: transformiraj pa vladaj

A

Ova skupina metoda rješava problem transformacijama. Ovo je moguće napraviti na 3 načina:
Pojednostavljivanjem instance problema
Drugačijom reprezentacijom instance problema.
Reduciranjem problema njegovim transformiranjem u problem kojeg je lakše riješiti.

21
Q

Primjeri primjene strategije transformiraj i vladaj

A

Mnoge probleme kod primjeni listi je moguće jednostavnije riješiti sortiranjem liste – npr. pretraživanje liste: nakon što sortiramo listu možemo primjeniti algoritam binarnog traženja.
Gaussovim transformacijama sustav jednadžbi transformiramo u jednostavno rješivu ekvivalentnu instancu problema.

22
Q

Primjeri strategija: dinamičko programiranje

A

Dinamičko programiranje obuhvaća grupu formalnih (razrađenih i usvojenih) postupaka optimalizacije kod kojih se obimni i/ili teško obradivi problemi (sustavi u cjelini) dijele u niz manjih lako obradivih problema (komponente sustava). Rješenja se potom dobivaju koračnim postupkom, pri čemu se u svakom koraku (k) optimalizacije uzimaju u obzir optimalna rješenja prethodnog koraka (k–1).