opća pitanja, IK Flashcards
Najbrži algoritam za sortiranje niza podataka je SELECT SORT algoritam. (T ili N)
Netočno
Vremenska složenost O(n) je bolja (brži algoritam) od vremenske složenosti O(n*logn). (T ili N)
Točno
Sortirani niz se može pretvoriti u nesortirani niz u vremenu O( 1 ). (T ili N)
Točno
Neka je zadan niz od 49842 podataka. Koliko će biti ponavljanja petlje kod algoritma binarnog pretraživanja?
16
Za “Veliko O”, O-notaciju vrijedi:
- To je funkcija rasta vremena izvršavanja ili potrebnog prostora s obzirom na ulazni broj podataka
- To je matematička formulacija koja definira vremensku i prostornu složenost algoritma
- Ova notacija definira točnost našeg algoritma
- To je mjera efikasnosti (učinkovitosti) algoritma/programa
- Prikazuje ponašanje algoritma u najkraćem, tj. najboljem slučaju izvršavanja
- To je funkcija rasta vremena izvršavanja ili potrebnog prostora s obzirom na ulazni broj podataka
- To je mjera efikasnosti (učinkovitosti) algoritma/programa
Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretraživanja. Napisani su i brojevi linija. Međutim, u jednoj liniji se nalazi greška. U kojoj?
- dg = 0;
- gg = N-1;
- for (;;) {
- s = (dg+gg)/2;
- if (V[s]==x) {
- printf( “%d Pronadjen! Na %d. poziciji u nizu.\n”, x, s );
- exit( 0 );
- }
- if (V[s]<x) gg = s-1;
- if (V[s]<x) dg = s+1;
- if (dg>=gg) {
- printf( “%d nije pronadjen!\n”, x );
- exit( 1 );
- }
- }
9
Ako povezana lista ima pokazivače na prvog i na zadnjeg, onda možemo trenutačno (u vremenu O(1)) dodati novi podatak na kraj. (T ili N)
Točno
Neka je povezana lista definirana strukturom u C-u:
struct oe_ {
float x;
struct oe_ *sljedeci;
} prvi = NULL;
Zadan je dio programa u C-u koji je napisan prema algoritmu obilaska (ispisa) povezane liste. Napisani su i brojevi linija. Međutim, u jednoj liniji se nalazi greška. U kojoj? Uzeti u obzir da je lista već popunjena podacima, da je t deklariran kao pokazivač na osnovni element liste, te da je i cjelobrojna varijabla.
- t = prvi; i = 1;
- for (;;) {
- if (t==NULL) break;
- printf( “Element %d. je %f\n”, i++, t->x );
- prvi = prvi->sljedeci;
- }
5
Povežite algoritam s povezanim listama s njegovom složenosti. Neka lista ima n podataka i neka ima samo pokazivač na prvi podatak.
- Dodavanje novog podatka u sredinu povezane liste.
- Dodavanje novog podatka na početak povezane liste.
- Brisanje prvog podatka u povezanoj listi.
- Pristup prvom elementu.
- Obilazak povezane liste.
- Dodavanje novog podatka u sredinu povezane liste. O(n)
- Dodavanje novog podatka na početak povezane liste. O(1)
- Brisanje prvog podatka u povezanoj listi. O(1)
- Pristup prvom elementu. O(1)
- Obilazak povezane liste. O(n)
Ako imamo sortiranu povezanu listu onda ju možemo pretraživati algoritmom binarnog pretraživanja. (T ili N)
Netočno
Na nekom računalu se dodavanje elementa na početak povezane liste izvršava za 50ns. Koliko će nanosekundi biti potrebno za dodavanje 462 elemenata u takvu povezanu listu.
23100
Ako imamo dvostruko povezanu listu onda možemo pristupiti svakom podatku trenutačno O(1). (T ili N)
Netočno
Rekurzivne funkcije ili procedure mogu pozivati samu sebe samo jednom. (T ili N)
Netočno
Funkcija int fakt( int n ), može izračunati točno fakt( 12 ) = 479001600. Zašto ova funkcija ne može točno izračunati fakt( n ), za n>12?
- Faktorijel nije niti definiran za n>12
- Zato što računalo nema dovoljno memorije
- Rezultat prelazi izvan opsega vrijednosti 32-bitnog tipa podataka int
- Funkcija može točno izračunati i za n>12
- Za n>12 računanje predugo traje
Rezultat prelazi izvan opsega vrijednosti 32-bitnog tipa podataka int
Kod problema povrh(a,b), ako je a=861, koliko treba biti b, da bi izvršavanje ove funkcije trajalo najduže?
430
Složenost rekurzivne funkcije int fakt( int n ) koja računa faktorijel je O( n ). (T ili N)
Točno
Rekurzivna funkcija ili procedura uvijek mora sadržavati osnovni slučaj koji je nerekurzivan.
Točno
Neka je zadana rekurzivna funkcija koja računa faktorijele. Napišite u kojoj liniji koda se pojavljuje greška.
- int fakt( int n );
- {
- if (n<=1) return 1;
- else return n*fakt( n-1 );
- }
1
Stablo se u memoriji prikazuje pomoću jednog niza i jednog pokazivača. (T ili N)
Netočno
Na kojem mjestu se nalazi roditeljski čvor od čvora na mjestu 20713 kod potpunog binarnog stabla?
10356
Obilasci binarnog stabla po dubini se mogu riješiti rekurzivnom funkcijom. (T ili N)
Točno
Svaki čvor binarnog stabla može imati najviše dva nasljednika. (T ili N)
Točno
U stablu na slici koji po redu se ispisuje čvor 11 kod ‘Inorder’ obilaska?
11 / \ 6 19 / \ / \ 4 8 17 43 \ \ / \ 5 10 31 49
6
Binarno stablo se može efikasno prikazati u računalu:
- Pomoću dinamičke strukture koja sadrži vrijednost čvora i pokazivač na sljedeće čvor
- Pomoću jedne povezane liste.
- Pomoću dinamičke strukture koja koristi vrijednost čvora, i pokazivače ne lijevi i desni nasljednik
- Pomoću matrice s tri stupca
- Pomoću 3 matrice
- Pomoću dinamičke strukture koja koristi vrijednost čvora, i pokazivače ne lijevi i desni nasljednik
- Pomoću matrice s tri stupca
Hrpa ima 6398 čvorova. Koliko razina ima ovakva hrpa?
13
Za hrpu (gomilu) vrijede slijedeće tvrdnje:
- Svaki čvor hrpe mora imati vrijednost usporedivu s vrijednostima ostalih čvorova.
- Hrpa je nelinearna struktura podataka.
- Hrpa uvijek ima manje razina nego čvorova.
- Hrpa se efikasno ostvaruje koristeći matricu s tri stupca u memoriji računala.
- Hrpa može imati čvor koji ima samo jednog nasljednika.
- Svaki čvor hrpe mora imati vrijednost usporedivu s vrijednostima ostalih čvorova.
- Hrpa je nelinearna struktura podataka.
- Hrpa može imati čvor koji ima samo jednog nasljednika.
Neka je zadana procedura void UHRPI(int i) koja uhrpljava čvor na i-tom mjestu prema algoritmu koji smo učili na predavanju i procedura zamjeni(..) koja zamjenjuje mjesta dva elementa u zadanom nizu V od N elemenata. NH je broj elemenata hrpe.
Prema algoritmu za soritranje koristeći hrpu dana je sljedeća procedura u C-u:
- void HeapSort() {
- int i;
- NH = N;
- for (i=NH/2; i>=0; i–) UHRPI( i );
- for (i=NH-1; i>=1; i–) {
- zamjeni( V[1], V[i] );
- NH–;
- UHRPI( 0 );
- }}
6
Novi čvor se uvijek dodaje kao zadnji element u hrpu i tamo ostaje. (T ili N)
Netočno
Svaka hrpa je istovremeno i sortirani niz. (T ili N)
Netočno
Algoritam za sortiranje BubbleSort je sporiji od algoritma za sortiranje koji koristi hrpu HeapSort. (T ili N)
Točno
Kakvo je to binarno stablo?
Stablo čiji čvorovi mogu imati najviše dva nasljednika
Koliko binarno stablo s i razina može imati čvorova?
2 na i čvorova
Kako se binarno stablo može prikazati u memoriji?
Statički (kao matrica s 3 stupca) ili dinamički.
Što je to obilazak po dubini?
Od korjena prema dnu stabla.
Objasni preorder obilazak.
NLD ispis, Nadređeni -> Lijevi - > Desni
Objasni inorder obilazak.
LND ispis, Lijevi - > Nadređeni -> Desni
Objasni postorder obilazak.
LDN ispis, Lijevi -> Desni - > Nadređeni
Što je to obilazak po širini?
obilazak po razinama s lijeva na desno, potrebna je struktura red
Kakvo je to poredano binarno stablo?
lijevi nasljednik i njegova oznaka su strogo manji od nadređenog, a desni nasljednik i njegova oznaka su strogo veći od nadređenog.
Kakvo je to izbalansirano stablo?
Stablo koje ima najmanju moguću visinu, tj. najmanji mogući broj razina.
Kakvo je to potpuno binarno stablo?
Stablo u kojem su sve razine osim zadnje popunjene.
Koliko na svakoj razini ima čvorova u potpunom binarnom stablu?
Ako se korjen označi s 0, onda na svakoj razini ima 2 na n čvorova (n - broj razina)
Objasni redne brojeve čvorova u potpunom binarnom stablu
- lijevi nasljednik ima uvjek parni redni broj
- desni nasljednik ima uvjek neparni redni broj
- nadređeni čvor i-tom čvoru ima redni broj floor(i / 2)
- lijevi nasljednik i-tog čvora ima redni broj 2*i
- desni nasljednik i-tog čvora ima redni broj 2*i + 1
Kako se u računalu može prikazati potpuno binarno stablo?
Pomoću niza koji se popunjava po razinama.
Kakvo je to prošireno binarno stablo?
stablo kojem svaki čvor može imati ili 2 ili nijednog nasljednika
Koliki je težinski put od i-tog vanjskog čvora do korjena u proširenom binarnom stablu?
težina(i) * razina(i)
Kakvo je to Huffmanovo stablo?
Prošireno stablo s najmanjim težinskim putem (čvorovi s većim težinama su bliže korjenu).
Što je to hrpa?
Potpuno binarno stablo za kojeg vrijedi da je vrijednost čvora manja ili jednaka vrijednosti njemu nadređenog čvora.