Teorija Flashcards

1
Q

Dvojiško Iskanje (Binary Search)

A

Iskanje elementa v tabeli
Deli in vladaj
O(log n)
n - dolžina tabele

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

Quicksort

A

Hitro urejanje
Deli in vladaj
O(n^2)
n - dolžina tabele

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

Heapsort

A

Urejanje s kopico
O(n log n)
n - dolžina tabele

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

Bubblesort

A

Urejanje z zamenjavami/mehurčki
O(n^2)
n - dolžina tabele

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

Topološko urejanje grafa

A

Urejanje acikličnega grafa tako, da manjše poimenovana vozlišča kažejo na večja.
O(n^2)
n - št. vozlišč |V|

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

FFT (Hitra Fourierjeva Transformacija)

A

Množenje polinomov
O(n log n)
n - stopnja polinomov

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

Strassen

A

Množenje matrik
O(n^2.81)
n - velikost matrike

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

Ford-Fulkersonov algoritem

A

Iskanje maksimalnega pretoka v grafu
O(m*n)
m - maksimalen pretok
n - št. povezav |A|

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

Bellman-Fordov algoritem

A

Iskanje najcenejše poti v grafu
O(n^3)
n - št. vozlišč

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

Floyd-Warshallov algoritem

A

Iskanje najcenejše poti v grafu med vsemi pari
O(n^3)
n - št. vozlišč

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

5 metod za razvijanje programov

A

Deli in vladaj, dinamično programiranje, rekurzivni razcep, sestopanje, požrešni algoritem, naivni algoritem

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

Definiraj urejanje zaporedij

A

Dani so a1, a2, a3, …, an in relacije popolne urejenosti ≺.
Cilj je poiskati tako ureditev, da velja a1 ≺ a2 ≺ … ≺ an

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

Naštej algoritme za notranje urejanje

A

Quicksort, Heapsort, Selection sort, Insertion sort, Mergesort, Bubble sort

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

Best, worst, avg case za heapsort

A

Ω(nlogn), Θ(nlogn), O(nlogn)

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

Best, worst, avg case za quicksort

A

Ω(nlogn), Θ(nlogn), O(n^2)

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

Kaj je načelo optimalnosti? Kje se uporablja?

A

Zaporedje odločitev D1, D2, …, Dn je optimalno, če nas privede do optimalne rešitve problema N.

Načelo optimalnosti se uporablja pri metodi dinamičnega programiranja za razvoj algoritmov. Dinamično programiranje sistematično preglejuje delne rešitve in sestavlja optimalno rešitev.

17
Q

Kdaj rečemo, da ima algoritem psevdo-polinomsko časovno zahtevnost?

A

Kadar je časovna kompleksnost algoritma odvisna od numerične vrednosti vhoda in ne dolžine vhoda.

18
Q

Naštej matrična mnnoženja in zapiši njihove časovne zahtevnosti.

A

Navadno množenje: O(n^3)
Deli in vladaj: O(n^3)
Strassen: O(n^2.81)

19
Q

Kakšna je časovna zahtevnost navadnega in izboljšanega algoritma za iskanje k-tega elementa?

A

Navadna: O(nlogn)
Izboljšana: O(n) –> algoritem je asimptotično optimalen

V izboljšani verziji algoritma (Blum-Floyd-Pratt-Rivest-Tarjanov) se uporablja metoda Deli in vladaj.

20
Q

Kaj je topološka ureditev grafa? Kdaj lahko graf topološko uredimo?

A

Graf je topološko urejen ko vsaka povezava poteka iz vozlišča z nižjo oznako v vozlišče z višjo.
Graf lahko topološko uredimo ko je acikličen.

21
Q

Master theorem za Deli in Vladaj

A
a - št. podproblemov ki jih rešimo
b - konstanta
c - faktor delitve
d - red velikosti zahtevnosti
n - velikost problema

(zapisi oba sistema - aT(n/c) + bn^d in (c^d)/a)

22
Q

DFT - zapisi definicijo n-tega primitivnega korena, matriko F in njen inverz, kaj delamo s to matriko v kerem cajtu.

A
  1. w^d = 1 in
  2. w^k != 1 za k = 1, …, d-1

V obsegu C (kompleksna mnozica) je w^(i*(2pi/d)), kjer je i imaginarna enota.

Matrika F je matrika d*d komponent w^(i,j) kjer je 0 <= i,j <= d-1.

Inverzna DFT F^-1 je reda dd, komponente so:
(1/d)
w^(-i*j), kjer je 0 <= i,j <= d-1.

F*F^1 = I.

S pomočjo F predstavimo DFT, ki je linearna transformacija prostora V. Algoritem FFT v času O(n log n) pretvori koeficientno predstavitev polinoma v vrednostno.

23
Q

Stroga definicija problema nahrbtnika

A

Množica R = {1, 2, 3, …, n} predstavlja predmete
Funkcija v: R -> N predmetu R(i) priredi vrednost v(i)
Funkcija t: R -> N predmetu R(i) priredi težo t(i)
Število b € N je nosilnost nahrbtnika

Cilj je poiskati podmnožico P⊆R, da velja:

  1. Σt(i) <= b
  2. Σv(i) je max (maksimiziramo vrednost plena)
24
Q

Bellmanove enačbe. Kaj, kje, zakaj?

A

Bellmanove enačbe se uporabljajo pri dinamičnem programiranju za iskanje najcenejših poti s predpostavko, da v grafu G obstaja usmerjena pot do vsakega vozlišča in da G nima negativnih ciklov.

Najcenejše poti iz izbranega vozlišča:
U_i
if(i=1)
    u_i = 0
else if(i >= 2)
   min {u_k + c_k,i} (min k, (k, i) € A)
Najcenejše poti iz izhodišča v ackiličnem grafu
U_i
if(i = 1)
    u_i = 0
else if(i >= 2)
    min {u_k + c_k,i} (min k, k < i)

Najcenejše poti iz izhodišča v splošnem grafu (Bellman-Ford)

(u_i)^(p)
if(i = 1, vsi p)
    u_i = 0
else if( i >1, p = 1)
    c_i,j
else if(i > 1, p > 1)
    min{(u_i)^(p-1), min {(u_k)^(p-1) + c_k,i}} (drugi min k, (k, i)€ A

Najcenejše poti med pari (Floyd-Warshall)
(u_i,j)^(m)
if(m = 0)
c_i,j
else if(1 <= m <= n)
min{(u[i][j]^(m-1), u[i][m]^(m-1) + u[m][j]^(m-1)}

25
Q

Pogoj za zatesnitev temeljne poti

A

Temeljno pot zatisnemo natanko tedaj ko pretok povečamo za:

min{min{c_i,j - v_i,j}, min{v_i,j}} (prvi min v p+, drugi v p-=

26
Q

Floyd-Warshall psevdokoda pls

A

VHOD: C - matrika cen
IZHOD: U - matrika najcenejših poti med pari

int, k, i, j;
U = C;
for(k = 1; k <= n; k++)
    for(i = 1; i <= n; i++)
        for(j = 1; j <= n; j++)
            U[i][j] = min(U[i][j], U[i][k] + U[k][j]);
27
Q

Bellman-Ford psevdokoda pls

A

for(int p = 1; p <= n-1; p++)
for(int i = 1; i <= n; i++)
u_i^(p) = min {u_i^(p-1), min{u_k^(p-1) + c_ki}}

28
Q

Topološko urejanje grafa psevdokoda pls

A
G_t = G;
s = 0;
while (G_t vsebuje vsaj eno vozlišče s vhodno stopnjo 0) do {
    v = izberi vozlišče s v.s. = 0 v G_t;
    s++:
    Ord(v) = s;
    G_t = G_t - v;
end
if(G_t = prazna množica) 
    return "DA" in Ord(...);
else
    return "NE"
29
Q

Dijkstra psevdokoda pls

A

P = {1};
T = {2,3,…,u};
u_1 = 0;
za vsak i > 1: u_i = c(1, i), ce je (1,i) v mnozici E sicer u_i = infinity
while T!= 0 do
poisci k element T, kjer u_k = min {u_i};
T = T - {k};
P = P U {k};
za v_j v mnozici T: u_j = min{u_j, u_k + c_kj}