Alls konar Flashcards
Minnið í tölvunni er línulegt, hvaða tvö minnissvæði þurfum við að muna eftir?
Stafli (stack) og kös (heap)
Hver er munurinn á stafla og kös?
Stafla er stjórnað af fallaköllum en við berum ábyrgð á kösinni
Hvað á heima á stafla í forritskóða?
POD (plain old datatype), char, short, int, long, float, double, boolean
Hvað á heima í kös í forritskóða?
Hlutir og fylki
Fylki og hlutir geta lifað lengur en föllin sem búa þau til, vegna þess að?
Minnissvæði fyrir fylki og hluti er tekið er tekið frá í kös (heap) í Java en ekki á stafla (stack).
Hvenær skilum við minninu til baka?
Ruslasafnari finnur út úr því fyrir okkur hvenær er óhætt að skila minninu til baka.
Tilvísanir á hluti taka hvað mörg bæti?
8 bytes
Gagnagrindur hafa hvaða Operations?
insert, remove, iterate, test if empty.
Hvað þýðir LIFO?
Last in first out
Er Stack LIFO Eða FIFO ?
LIFO, eins og diskar
Hvað þýðir FIFO?
First in first out
Queue LIFO eða FIFO?
FIFO, eins og röð
A stack with N items uses how many bytes?
~ 40 N bytes
Ef við ætlum að setja int á stafla þá verðum við að ?
Nota Integer sem er wrapper fyrur int, vegna þess að við verðum að setja eitthvað sem er hlutur og öll POD hafa wrapper object type
hvort er betra að fá villu á þýðingartíma eða keyrslutíma?
Mun betra að fá villu á þýðingartíma, ekki á keyrslutíma
Ef við ætlum að setja int á stafla þá verðum við að ?
Nota Integer sem er wrapper fyrir int, vegna þess að við verðum að setja eitthvað sem er hlutur og öll POD hafa wrapper object type
Hvað er Iterable?
Hefur aðferð sem heitir Iterator, sem skilar Itorator hlut
hvað er Itarator hlutur?
Hefur has next aðferð og next aðferð
Hvernig getum við látið forritið mæla hversu langan tíma það tekur?
Með því að nota klasann Stopwatch
Hvað tekur langan tíma að hoppa á random stað í fylki’
Fastan tíma
Hvað kostar strengjasamsetning?
Strengjasamsetning kostar í réttum hlutföllum við lengd á streng
Er hægt að breyta strengjum í Java?
Nei bara hægt að búa til nýja strengi
Hvenær var helmingunarleit (binary search) fyrst birt?
1946
Fyrsta bug free binary search?
1962
Hvað tekur binary search langan tíma ?
Log N
Union-find notar ekki bara algorithma heldur?
Líka gagnagrind
Ef við ætlum að svara spurningunni er til leið á milli a og b, í neti t.d. þá þurfum við bara að vita?
Hvort a og b séu í sama samhengisþætti
Gallar við quick-find?
Union of dýrt, find er hægvirk aðgerð ef tréð er með mikla dýpt, viljum að tréið sé breytt.
Weighted quick-union keyrslutími?
lg N
Selection sort
Förum í gegnum nokkrar ítranir, leitum af minnsta staki, og skiptum við fyrsta stakið
Hvenær borgar sig að nota selection sort?
Lágmarka fjölda flutninga, ef það kostar að færa hlyti þeas
Hvað er vandamálið við selection sort?
Fjöldi samanburða er óháður inntakinu, alltaf n í 2 deilt með tveimur, þó að fylkið sé raðað nú þegar
Insertion sort
Berum saman fyrstu 2 og swap, svo næstu 2, svo næstu 2, berum alltaf saman við öll stökin á undan
Hvað er vandamálið við selection sort?
Fjöldi samanburða er óháður inntakinu, alltaf (N^2)/2, þó að fylkið sé raðað nú þegar
Tímaflækja insertion sort?
O(N^2)
Tímaflækja insertion sort?
O(N^2)
Hvað er betra við insertion sort vs selection sort?
Það fattar þegar það má hætta aðeins fyrr
Hvernig væri hægt að bæta insertion sort?
Nota binary search (helmingunarleit), til að finna rétta staðinn fyrir key, í staðinn fyrir að swapa við hvert stak þangað til rétti staður finnst
Leið til að gera shuffle?
Láta hvern einasta hlut fá einhverja slembi tölu, og röðum svo hlutum eftir slembitölunum
Ein leið til að gera shuffle?
Láta hvern einasta hlut fá einhverja slembi tölu, og röðum svo hlutum eftir slembitölunum
Betri umröðunarreiklniritið?
Knuth, Förum frá i upp í 0, veljum heiltölu r frá 0-i af handahófi, skiptum a[i] og a[r], keyrir á línulegum tíma
Selection og insertion taka bæði hvað langan tíma?
N^2
Tvö klassískt röðunarreiknirit?
Merge-sort og quick-sort
Merge-sort byggist á hvaða hugmynd?
Skipta vandamáli í tvennt, röðum hverjum helming endurkvæmt, merge-a báða helminga
Hver var með fyrstu hugmyndina um merge-sort?
John van Neumann
Tímaflækja merge-sort?
O(N log N)
Hvernig er gott að einfalda merges-sort?
Notum merge-sort, nema ef fylkið er orðið nógu lítið þá notum við eitthvað einfalara, eins og insertion sort
Hvað þurfum við marga samanburði fyrir hvaða röðunarreiknirit sem er ?
N log N
Stöðug röðun er?
Raðar í rétta röð, en þegar það er jafntefli þá varðveitar það innbyrgðis röðun
Hvaða reiknirit eru stöðug?
Insertion sort og merge sort