VPRAŠANJA

 Vsak na izpitu izvleče štiri številke od 1 do 80.

Vp 1:   Vp 2:   Vp 3:   Vp 4:     Nato ima nekaj časa (15-20 minut) za samostojno pripravo na odgovor. Med pripravo lahko uporablja poljubno literaturo in je lahko kjerkoli. Nato dobi zastavljeni dve vprašanji od teh štirih. Pri odgovarjanju ne sme uporabljati nobenih zapiskov, literature, ...

  1. Na primeru analiziraj časovno in prostorsko zahtevnost določenega algoritma.
  2. Ugotovi in primerjaj časovno in prostorsko zahtevnost dveh algoritmov za izračun potence števila: z zaporednim množenjem in z razpolavljanjem.
  3. Razloži vsaj dva algoritma za izračun maksimalne vsote podzaporedja v zaporedju celih števil.
  4. Primerjaj časovni zahtevnosti algoritma za iskanje v neurejenem zaporedju in z bisekcijo v urejenem zaporedju. Pokaži najboljši in najslabši primer.
  5. Razloži in s primerom pokaži, zakaj je dobro uporabljati stabilno metodo urejanja. Pokaži primer vsaj dveh nestabilnih in dveh stabilnih metod urejanja.
  6. Opiši hitro urejanje: algoritem, časovna zahtevnost, ...
  7. Primerjaj vstavljanje, izbiranje in urejanje z mehurčki.
  8. Razloži algoritem za urejanje z vstavljanjem. Dokaži, da deluje pravilno.
  9. Na praktičnem primeru pokaži, kako deluje hitro urejanje in urejanje z zlivanjem.
  10. Napiši algoritem za urejanje z vstavljanjem in analiziraj njegovo časovno zahtevnost.
  11. Opiši urejanje z izbiranjem.
  12. Sestavi algoritem, ki poišče maksimalno dolžino čete na datoteki.
  13. Na primeru pokaži, kako bi potekalo dvofazno naravno zlivanje s petimi datotekami.
  14. Razloži postopek naravnega zlivanja.
  15. Razloži razliko med naravnim in navadnim zlivanjem.
  16. Opiši polifazno zlivanje.
  17. Na primeru določi, kako bi pri polifaznem zlivanju razporedil čete na k datotek.
  18. Sestavi algoritem, ki zlije dve urejeni zaporedji predstavljeni v linearnem kazalčnem seznamu. Pri tem ne prestavljaj elementov.
  19. Sestavi algoritem, ki vstavi nov element na začetek dvojno povezanega seznama, podanega s kazalcema na začetek in konec.
  20. Sestavi algoritem, ki na ustrezno mesto vstavi nov element v urejeni linearni seznam.
  21. Sestavi algoritem, ki iz linearnega seznama, v katerem hranimo cela števila, naredi dva seznama. V prvem so liha števila in v drugem soda števila. Pri tem ne smeš narediti prelagati elementov!
  22. Sestavi algoritem, ki izračuna povprečno dolžino besed, ki jih hranimo v enojno povezanem linearnem seznamu.
  23. Sestavi algoritem, ki vrne kazalec na element linearnega seznama v katerem je najdaljša beseda.
  24. Sestavi algoritem, ki določi, katera sta zadnja preostala elementa krožnega seznama, če izločamo vsak tretji element.
  25. Naštej nekaj podatkovnih struktur in na kratko opiši njihove osnovne značilnosti.
  26. Formalno opiši podatkovno strukturo sklad.
  27. Formalno opiši podatkovno strukturo vrsta.
  28. Formalno opiši podatkovno strukturo dvojiško drevo.
  29. S pomočjo osnovnih operacij nad vrsto in skladom obrni vrstni red elementov v skladu.
  30. Razloži, kako bi lahko vrsto predstavil s pomočjo tabele in opiši osnoven algoritme.
  31. Sestavi algoritem, ki z osnovnimi operacijami nad vrsto pove, kateri je n-ti element vrste (če obstaja).
  32. Imamo dve vrsti, v katerih so elementi urejeni naraščajoče. Sestavi algoritem, ki s pomočjo osnovnih operacij nad vrsto sestavi novo vrsto, kjer so elementi (iz prvih dveh vrst) urejeni prav tako naraščajoče.
  33. Imamo dva sklada, v katerih so elementi urejeni naraščajoče (prvi element v skladu je najmanjši). Sestavi algoritem, ki s pomočjo osnovnih operacij nad skladom sestavi nov sklad, kjer so elementi (iz prvih dveh skladov) urejeni prav tako naraščajoče.
  34. Pregledi dvojiškega drevesa. Opiši in na praktičnem primeru izvedi.
  35. Sestavi algoritem, s katerim iz premega in vmesnega vrstnega reda rekonstruiraš drevo.
  36. Sestavi algoritem, s katerim poiščeš element v dvojiškem iskalnem drevesu.
  37. Sestavi algoritem s katerim vstaviš nov element v dvojiško iskalno drevo.
  38. Sestavi algoritem, s katerim ugotoviš višino dvojiškega drevesa. Uporabi le osnovne operacije nad drevesom.
  39. V dvojiškem drevesu hranimo cela števila. Sestavi algoritem, s katerim izračunaš povprečno vrednost elementov v drevesu.
  40.  Dano je dvojiško iskalno drevo. Izpiši elemente urejeno.
  41. V dvojiškem drevesu hranimo cela števila. Naj bo vsota poti lista  enaka vsoti elementov, ki jih prehodimo od korena do lista. Sestavi algoritem, ki ugotovi, če v danem drevesu obstaj list, ki ima vsoto poti enako danemu številu.
  42. Sestavi algoritem, ki s pomočjo osnovnih operacij nad dv. drevesom, dano dvojiško drevo prezrcali (t.j. zamenja vlogo levega in desnega poddrevesa vsakega vozlišča).
  43. Sestavi algoritem, ki s pomočjo osnovnih operacij nad dv. drevesom, ugotovi, če sta dve drevesi identični (imata enako strukturo in hranita enake vrednosti)
  44. Sestavi algoritem, ki v iskalnem dvojiškem drevesu poišče minimalni in maksimalni element.
  45. Sestavi algoritem, ki s pomočjo osnovnih operacij nad dv. drevesom,v dvojiškem drevesu poišče minimalni in maksimalni element.
  46. Razloži, kaj je to kopica in sestavi algoritem, ki vstavi nov podatek v kopico.
  47. Sestavi kopico, če vse elemente poznaš vnaprej.
  48. Elementi so shranjeni v kopici. Sestavi algoritem s katerim jih preložiš v tabelo tako, da so v tabeli urejeni.
  49. Sestavi algoritem s katerim odstraniš vrhnji podatek iz kopice.
  50. Sestavi algoritem s katerim odstraniš poljubni podatek iz kopice.
  51. Razloži pojme: poln graf, usmerjen graf, pot, cikel, stopnja vozlišča, stopnja grafa, izolirano vozlišče, povezan graf, sosednji točki, razdalja med točkami.
  52. Opiši možne načine predstavitve grafa.
  53. Sestavi algoritem, s katerim bi pregledal povezan graf.
  54. Graf je predstavljen z matriko sosednosti. Sestavi algoritem, ki za vsako vozlišče ugotovi njegovo stopnjo.
  55. V povezanem grafu hranimo števila. Sestavi algoritem s pomočjo katerega od vsakega števila odšteješ vrednost maksimalnega števila v grafu.
  56. Vemo, da ima neusmerjen graf n vozlišč. Sestavi algoritem, s katerim ugotoviš, če je povezan.
  57. Razloži zakaj gre pri problemih barvanja grafa, Eulerjeve poti, Hamiltonove poti.
  58. Nariši primer grafa s šestimi vozlišči in desetimi povezavami. Sestavi vsaj tri predstavitve tega grafa.
  59. Dvodelni (bipartitni) graf je neusmerjen graf, v katerem lahko množico vozlišč razdelimo v dve disjunktni množici (vsako vozlišče je samo v eni množici) tako, da vozlišča znotraj vsake množice med seboj niso povezana. Sestavi postopek, ki ugotovi, če je dani graf dvodelen ali ne.
  60. Dan je graf za katerega vemo, da je dvodelen. Sestavi postopek, ki ugotovi, katere točke spadajo v prvo in katere v drugo množico.
  61. Opiši metodo deli in vladaj.
  62. Opiši, kako bi z metodo deli in vladaj poiskal k-ti največji element v tabeli števil.
  63. Razloži, kako z bisekcijo poiščeš element v urejeni tabeli števil.
  64. Naštej probleme, ki jih lahko rešiš s pomočjo metode deli in vladaj in opiši algoritem za enega od teh.
  65. Analiziraj časovno zahtevnost iskanja minimalnega elementa z direktnim iskanjem (zaporedno primerjanje) in z metodo deli in vladaj.
  66. S pomočjo metode deli in vladaj sestavi algoritem, ki poišče dve točki v ravnini, ki sta med sabo najmanj oddaljeni.
  67. Razloži zakaj gre pri problemu iskanja Vornoievega diagrama in pri problemu iskanja konveksne ovojnice točk.
  68. Razloži osnovno idejo požrešne metode in navedi nekaj problemov, ki jih rešujemo z njo.
  69. Problem enostavnega nahrbtnika.
  70. Na praktičnem primeru razloži, kako deluje Primov in  Kruskalov postopek.
  71. Razlike med Primovim in Kruskalovim postopkom, kdaj bi lahko uporabili ta postopek?
  72. Naštej nekaj problemov, ki jih lahko prevedemo na problem trgovskega potnika. Za vsakega sestavi neko konkretno omrežje in opiši, kaj pomenijo vrednosti in kaj rešitev.
  73. Sestavi algoritem, s katerim določiš spodnjo mejo za dolžino krožne poti v omrežju z nenegativnimi povezavami.
  74. Na praktičnem primeru razloži, kako poteka reševanje problema trgovskega potnika z metodo razveji in omeji.
  75. Problem trgovskega potnika.
  76. V hiši je n razdelilnih vtičnic. Predlagaj podatkovno strukturo in algoritem s katerim bi določil, kako bi te vtičnice povezal med sabo, da bi bila skupna dolžina kabla najmanjša. Od vsakega razdelilca lahko potegneš kabel do drugega.
  77. V hiši je n sob. Med nekaterimi sobami so mačja in pasja vrata, prehodna le v eno smer. Maček lahko hodi le skozi mačja in pes le skozi pasja vrata. Kako bi ugotovil, če se maček in pes lahko srečata. Predlagaj ustrezno podatkovno strukturo in algoritem.
  78. V zelo visoki stolpnici z n nadstropji je m dvigal. Za vsako dvigalo veš, v katerem nadstropju se ustavi. Ugotovi, če je mogoče iz poljubnega nadstropja priti v poljubno nadstropje. Na katerega od znanih problemov lahko prevedeš ta problem.
  79. Za metodi deli in vladaj in sestopanje opiši vsaj en problem (drugačen od tistih, ki so bili omenjeni na predavanjih), ki bi ga reševali s to metodo in opiši, kako bi svoj problem prevedel na enega od znanih.
  80. Za metodi požrešna metoda in problem trgovskega potnika opiši vsaj en problem (drugačen od tistih, ki so bili omenjeni na predavanjih), ki bi ga reševali s to metodo in opiši, kako bi svoj problem prevedel na enega od znanih.
  81.