Algoritmusok és adatszerkezetek II. kidolgozott vizsgakérdések
|
|
- Klaudia Somogyiné
- 5 évvel ezelőtt
- Látták:
Átírás
1 Algoritmusok és adatszerkezetek II. kidolgozott vizsgakérdések 2013/2014-es tanév 2. félév 1.) a. Adott a háromjegyű bináris számok következő sorozata: 010, 101, 011, 110, 000, 001, 100. Rendezzük a számokat az egy tömbben dolgozó RADIX előre edényrendezéssel! Adjuk meg a tömb tartalmát az egyes pozíciók feldolgozása után! Elv: Felírjuk az inputot egymás alá. Majd bitenként elölről hátrafelé haladunk. Minden lépésben alulról felfelé, illetve fentről lefelé indulunk. Fentről lefelé ha 1-est találunk, megállunk. Alulról felfelé ha 0-t találunk megállunk. Ha mind két irányban megálltunk, cserélünk, majd haladunk tovább. Amikor a két haladás átlépi egymást, akkor vége az adott iterációnak. Ekkor a 0-k felül, a 1-esek alul helyezkednek el. Ezek alapján 2 blokkra osztjuk az elemeket, majd a következő iterációban a blokkokon külön megyünk végig. b. Adott a háromjegyű bináris számok következő sorozata: 110, 011, 010, 101, 000, 100, 001. Rendezzük a számokat a felváltva két tömbben dolgozó RADIX vissza edényrendezéssel! Adjuk meg rendre az 1., 2. és 3. pozíció szerinti hasítás eredményét tartalmazó megfelelő (A vagy B) tömböt, végül pedig a rendezettséget mutató A tömböt! Elv: Vegyünk fel két tömböt (A,B). Felírjuk az inputot egymás alá, az A tömbbe. Majd bitenként haladjunk hátulról előrefelé. Minden lépésben a tömb két részre van osztva. (A legelső lépés kicsit rendhagyó, tekintsük ekkor a második részt üresnek). Az első részen felülről lefelé, majd a második részben alulról felfelé haladjunk. Az egyeseket a másik tömb aljára (végére) helyezzük, a 0-kat a tetejére (elejére). Addig menjünk, míg el nem érjük a határvonalat. Ekkor húzzuk meg a határvonalat a második (B) tömbben Folytassuk az eljárást a másik tömbbön (B), írjunk az iménti tömbbe (A) A végén tegyünk egy utolsó lépést, melyben a megszokott haladási sorrendben olvassuk ki az adatokat 1
2 c. Adott a három karakteres értékek következő sorozata: bcb, cba, aac, bbb, cab, acc, caa. Rendezzük a számokat a visszafelé haladó edényrendezés listás változatával! Adjuk meg a listák (absztrakt szinten sorozatok) tartalmát a szét-, ill. összefűzések után! Elv: Vegyünk fel egy listát, melyben az inputot tároljuk. Karakterenként hátulról előre vizsgálódunk. Minden lépésben szétfűzzük a listát a karakterek alapján, majd sorendben visszafűzzük őket. Végezzük a műveletet addig, míg el nem érjük az első karaktereket a cba, caa b bcb, bbb, cab c aac, acc a caa, cab, aac b cba, bbb c bcb, acc a aac, acc b bbb, bcb c caa, cab, cba bcb, cba, aac, bbb, cab, acc, caa cba, caa, bcb, bbb, cab, aac, acc caa, cab, aac, cba, bbb, bcb, acc aac, acc, bbb, bcb, caa, cab, cba 2.) Írja meg a lineáris hasítás algoritmusát, vagyis azt a h: K H [0..m-1] függvényt, amely O(M) műveletigénnyel beszúr egy kulcsot a H [0..m-1] vektorral ábrázolt hashtáblába! A hasító-táblában megengedett az azonos kulcsok többszöri előfordulása. Két extremális kulcsértéket használunk az üres ill. a törölt pozíció jelzésére (ÜRES, TÖRÖLT). A kulcsütközések feloldására (balra lépő) lineáris próbálást alkalmazzon. A függvény visszatérési értéke legyen a beszúrt kulcs vektorbeli pozíciója, ha sikerült a kulcsot beszúrni a táblába, különben pedig 1. ahol: H = (t[0..m-1], n): hasítótábla q: beszúrandó elem n: táblában lévő elemek száma M: tábla kapacitása (vektor mérete) h(x) = x mod M h i (x) = -i 2
3 3.) Nyílt címzéssel, a h(k) = k (mod 11) hasítófüggvénnyel helyezzük az A [0..10] tömbben a 29, 61, 49, 50, 13, 39, 60, 76 sorozatot. Adjuk meg a keletkezett táblát az alábbi esetekben: a. lineáris próbálás (balra lép) b. négyzetes próbálás (felváltva jobbra-balra lép) c. kettős hash-elés, ahol h (k) = k (mod 7) + 1 (balra lép) Vektorbeli pozíció kiszámítása: h(x) + h i (x) mod M Lineáris próba: h i (x) = -i Négyzetes próba: h i (x) = ( 1) i i Kettős hash-elés, ahol h (k) = k (mod 7) + 1 (balra lép): h i (x) = -i * h (k) ) Éllistás ábrázolással adott egy egyszerű, irányított, élsúlyozott gráf. Adjon algoritmust, amely az Adj[1..n] tömb elemeihez fűzött (csúcs, élsúly, pointer) mezőket tartalmazó elemekből álló listák feldolgozásával előállítja a gráf csúcsmátrixos ábrázolását a G [1..n, 1..n] szomszédsági mátrixban, annak tanult, szokásos kitöltési konvenciója szerint! 3
4 5.) Adjon olyan algoritmust, amely meghatározza egy irányított gráf éllistás ábrázolása esetén a gráf csúcsainak kimeneti fokát és bemeneti fokát. A program a kifok és befok értékeket a kifok [1..n] és befok [1..n] tömbökbe írja be, amelyek a csúcsok sorszámával (címkéjével) vannak indexelve! 6.) Adott egy egyszerű irányított G gráf éllistás ábrázolása az Adj [1..n] tömbbel. Írjunk olyan algoritmust, lineáris időben eldönti, hogy a G gráf speciálisan fa struktúrájú-e! (Az ellenőrzéshez új adatszerkezetet fel lehet venni, ha szükséges.) Irányított Fa: Egy olyan irányított körmentes irányított gráf, aminek van egy db csúcsa, melynek a befoka 0 és a többi csúcsnak a befoka 1 Tehát, ha vizsgáljuk a befokokat, megkapjuk, hogy fa-e az irányított gráf. Az algoritmus műveletigénye: n+e+n = O(e) 4
5 7.) Szemléltesse a Dijkstra algoritmus működését az alábbi gráfon! Adja meg menetenként a d és P tömbök tartalmát! A kiinduló csúcs legyen az 1-es címkéjű csúcs. d Π k
6 8.) Szemléltesse a Prim algoritmus működését az alábbi gráfon! A startcsúcs legyen az 1- es címkéjű csúcs. Írja fel a minq és a π tömb tartalmát menetenként (minden minimum kivételnél), rajzolja le a kialakult feszítőfát! minq d π (0,1), (,2), (,3), (,4), (,5), (,6) (2,2), (3,3), (4,4), (,5), (,6) (1,3), (4,5), (4,4), (,6) (1,5), (3,6), (4,4) (2,6), (4,4) (2,4)
7 9.) Szemléltesse a Bellman-Ford algoritmus működését az alábbi gráfon. Startcsúcs az 5- ös címkéjű csúcs! A gráfban nincs negatív kör, ezt már nem kell ellenőrizni. Adja meg menetenként a d és Pi tömbök tartalmát, és rajzolja le minden menet után a gráfot, egyértelműen jelölve az addig talált legjobb utakat az 5-ös csúcsból a többihez! Az éleket minden menetben a csúcsok címkéi szerinti alfabetikus sorrendben dolgozzuk fel: (1,2), (1,3),, (5,2). d π Rajz 7
8 10.) Az alábbi gráfon az 1-es címkéjű csúcsból indulva lefuttatunk egy mélységi bejárást. A csúcsok szomszédjainak a feldolgozási sorrendje legyen a szomszéd csúcsok címkéi szerint növekvően rendezett. Jelölje a gráfon, a bejárás során kapott mélységi és befejezési számokat, illetve az éltípusokat! Élek meghatározása (u v): Faél: msz[v] =0 Visszaél: msz[v] > 0 és bsz[v]=0 Keresztél: msz[v] > 0 és bsz[v] >0 és msz[u] > msz[v] Előreél: msz[v] > 0 és bsz[v] >0 és msz[u] < msz[v] 11.) Adja meg az alábbi gráf egy topologikus rendezését (ha létezik) a tanult eljárással, annak követhető leírásával! A gráf mélységi bejárása során helyezzük egy verembe azon csúcsokat, melyekből visszalépünk
9 12.) A MATEKFELELETEMKETTESLETT szöveget szeretnénk tömöríteni Huffmankódolással. Írja le a kódfa építés elvét, adja meg a kódfát, a szöveg betűinek a kódját, valamint azt is, hogy minimálisan hány bittel tudjuk kódolni az eredeti, illetve a tömörített szöveget! Szimbólumok gyakoriságának megállapítása (M, 2), (A,1), (T, 6), (E, 8), (K, 2), (F, 1), (L, 3) (S,1) Gyakoriság szerinti rendezés (A, 1), (F,1), (S,1), (M, 2), (K, 2), (L, 3), (T, 6), (E, 8) Huffman-fa építése Gyakoriságok szerint megyünk, és alulról kezdjük építeni a fát. Kiválasztunk 2 csúcsot, berakjuk a fa aljára. Összevonjuk a két csúcsot, és visszarakjuk a rendezett sorba. (A, 1), (F,1), (S,1), (M, 2), (K, 2), (L, 3), (T, 6), (E, 8) (AF,2), (S,1), (M, 2), (K, 2), (L, 3), (T, 6), (E, 8) (M, 2), (K, 2), (AFS,3), (L, 3), (T, 6), (E, 8) (AFS,3), (L, 3), (KM, 4), (T, 6), (E, 8) (KM, 4), (AFSL,6), (T, 6), (E, 8) (T, 6), (E, 8), (AFSLKM,10) (AFSLKM,10), (TE, 14) (AFSLKMTE,24) A fa elkészültével az egyik irányba mutató éleket 0-val, míg a másik irányba mutatókat 1-el címkézzük fel. A gyökérből a levelekig leolvasva az élek címkéit, megkapjuk az adott betű kódját. A K F M S T - 10 L E- 11 Output: Eredeti szöveg kódolásának mérete: 8 különböző karakter van. Így egy karaktert 3 biten tudunk ábrázolni. Az eredeti szöveg 24 karakter hosszú, így a szöveg kódolása 24*3=72 bit lett volna. Huffman-kód mérete: A: 5 bit, F: 5 bit, S: 4 bit, L: 3 bit, K: 3 bit, M: 3 bit, M: 3 bit, T: 2 bit, E: 2 bit. Így a huffman kód mérete: *3+2*3+2*3+6*2+8*2 = 63 9
10 13.) Lempel-Ziv-Welch tömörítő eljárással kódoltunk egy szöveget. A szöveg A, B és C betűket tartalmazott, melyeket rendre az 1, 2 és 3-as számokkal kódoltunk. A szótár felépítése során, a szótárba kerülő új szó kódjának a legkisebb még nem használt pozitív egész számot választottuk. Így a következő kódolt szöveget kaptuk: Adja meg az eredeti szöveget és a felépített szótárat! In X Tábla Out 1 A 4: A A 2 B 4: A = AB 5: B B 4 AB 5: B = BA 6: AB AB 3 C 6: AB = ABC 7: C C 5 BA 7: C = CB 8: BA BA 6 ABC 8: BA = BAA 9: ABC ABC 9 ABC 9: ABC = ABCA 10: ABCA ABCA 7 CB 10: ABCA = ABCAC 11: CB CB 1 A 11: CB = CBA 12: A A A szöveg: ABABCBAABCABCACBA A kódtábla: 1: A, 2: B, 3: C, 4: AB, 5: BA, 6: ABC, 7: CB, 8: BAA, 9: ABCA, 10: ABCAC, 11: CBA, 12: A 14.) Adott az alábbi S szöveg és M minta. Szemléltesse a Knuth-Morris-Pratt algoritmus működését! Adja meg a next vektor értékét! Rajzolja le a szöveg alá a minta eltolásait és adja meg, hogy pontosan hány összehasonlítást végez az algoritmus! Összehasonlításnak tekintse a minta és szöveg egy-egy karakterének az összehasonlítását. S= BABALABABATIBABABAKI és M= ABABAKI A next vektor kiszámítása az InitNext() eljárással: i j minta esemény Akció 1 0 A B A B A K Nincs egyezés, j = 0 i = 2, next[2] = A B A B A Egyezés i = 3, j = 1, next[3] = A B A B A Egyezés i = 4, j = 2, next[4] = A B A B A Egyezés i = 5, j = 3, next[5] = A B A B A Nincs egyezés, j 0 j = next[3] 5 1 A B A Nincs egyezés, j 0 j = next[1] 5 0 A B Nincs egyezés, j = 0 i = 6, next[6] = 0 Tehát az Next tömb:
11 A KMP algoritmus: I j Szöveg és minta esemény Akció 0 0 B A B A L A B A B A T I B Х, j = B A B A L A B A B A T I B 2 1 B A B A L A B A B A T I B 3 2 B A B A L A B A B A T I B 4 3 B A B A L A B A B A T I B j = Х, j 0 next[3] 4 1 B A B A L A B A B A T I B j = Х, j 0 next[1] 4 0 B A B A L A B A B A T I B Х, j = B A B A L A B A B A T I B 6 1 B A B A L A B A B A T I B 7 2 B A B A L A B A B A T I B 8 3 B A B A L A B A B A T I B 9 4 B A B A L A B A B A T I B 10 5 B A B A L A B A B A T I B j = Х, j 0 next[5] 10 3 B A B A L A B A B A T I B j = Х, j 0 next[3] 10 1 B A B A L A B A B A T I B j = Х, j 0 next[1] 10 0 B A B A L A B A B A T I B Х, j = B A B A L A B A B A T I B Х, j = B A B A L A B A B A T I B Х, j = B A B A L A B A B A T I B 14 1 B A B A L A B A B A T I B 15 2 B A B A L A B A B A T I B 16 3 B A B A L A B A B A T I B 17 4 B A B A L A B A B A T I B 18 5 B A B A L A B A B A T I B 19 6 B A B A L A B A B A T I B Összehasonlítások száma: 25 11
12 15.) Gráfok szélességi bejárása G gráf (ir. vagy ir. nélküli) Élsúlyok nem szerepelnek s startcsúcsból érjük el a gráf csúcsait, az s-től való távolságuk sorrendjében. Legrövidebb utak feszítőfáját adja meg (d - távolságok, π - szülők) Algoritmus: nem determinisztikus, mohó Sor adatszerkezetet használunk Pl: Q d π ,2, ,3,4, ,4,5 4 4,5 5 5, ) Minimális költségű utak keresése I. (Dijkstra algoritmus) G gráf (ir.) Élsúlyozott (nincs negatív él) s startcsúcsból keressünk minden csúcsba minimális költségű utat. Minimális költségű utakat keres. Algoritmus a SZB átváltoztatása. (Csúcsoknak 3 állapotuk van: nemelért, elért, kész) Algoritmus mohó, de a d és π tömbök értékei változhatnak az eljárás során Prioritási sor adatszerkezetet, vagy folyamatos MinKer-t alkalmazunk a még nem kész csúcsokon. 12
13 Pl: d π ) Minimális költségű utak keresése II. (Bellman-Ford algoritmus) G gráf (ir.) Élsúlyozott (összefüggő, negatív élek) s startcsúcsból keressünk minimális költségű utakat Minimális költségű utakat keres. Algoritmus nem mohó. n-1 iterációval, minden iterációban az összes csúcs összes szomszédját vizsgálja. (Ha n. iterációban van módosítás, akkor van negatív kör) 18.) Minimális költségű utak minden csúcspárra (Floyd algoritmusa) G gráf (ir.) Élsúlyozott (összefüggő, negatív élek) Minimális költségű út keresése minden csúcspárra Algoritmus nem mohó, n iterációval, minden iterációban +1 csúcs hozzá vételével keres kedvezőbb utakat. Minden k. iterációban egy i j utak mátrixát állítja elő, ahol i j = < i, v 1, v 2,... v m, j> (v 1...v m k) (Ha a végén az átlókban nem 0-k vannak, akkor van negatív kör.) 13
14 Pl: 0 3 D = D = D = D = D = ) Minimális költségű feszítőfa keresés (Prim algoritmus) G gráf (ir nélküli) Élsúlyozott (összefüggő, negatívat engedélyez) s startcsúcsból keressük meg a minimális költségű élekből alkotott feszítőfát Minimális költségű feszítőfát adja meg (d - élköltségek, π - szülők) Prioritásos sor adatszerkezet használ. (Először feltöltjük az In művelettel. A kezdőcsúcs távolságát 0-ra állítjuk (Replace). Majd minden iterációban kivesszük (Out) a legkisebb távolságú elemet. Csak azon szomszédjait vesszük figyelembe, amik benne vannak a sorban (Contains)) Pl: minq d π (0, 1), (, 2) (1, 2), (5, 4) (2, 3), (2, 4), (2, 5) (1, 5), (2, 4), (5, 6) (2, 4), (5, 6) (5, 6)
15 20.) Gráfok mélységi bejárása G gráf (ir.) Élsúlyok nem szerepelnek (nem öf. is) Nincs startcsúcs, a csúcsokat mohón választjuk. Addig haladunk előre míg tudunk, majd visszalépünk. Mélységi fát (erdőt) adja meg. A csúcsokat színezés helyett most "mélységi szám", ill. "befejezési szám"-okal jellemezzük Pl: 15
16 Összefoglalva Irányított Irányítatlan Nem öf Élsúlyos Élsúly nélküli Negatív élek Kiszűri a negatív kört Startcsúcs SZB Dijkstra BF Floyd Prim MB Mit ad Legrövidebb utak feszítőfája Minimális költségű utak Minimális költségű utak Minimális k. út minden csúcspárra Minimális költségű feszítőfa Mélységi fa (erdő) 21.) DAG topologikus rendezése DAG (directed acyclic graph): Írányított körmentes gráf Felhasználás: Munkafolyamatok ill., függősége (ételrecept, autógyártás) pl: Elmélet: 1. Ha G gráfra a MB talál visszaélt G nem DAG 2. HA G nem DAG (van benne kör) bármely MB talál benne visszaélt 3. Ha G-nek van topologikus rendezése D DAG 4. Egy DAG mindig topologikusan rendezhető Topologikus rendezés: Egy G(V, E) gráf topologikus rendezése a csúcsok olyan sorrendje, hogy U V E élre U előbb van, mint V. Topologikus rendezés algoritmusa: G gráf MB-a során helyezzük verembe azon csúcsokat, melyekből visszalépünk. A verem tartalmát kiírva megkapjuk a gráf topologikus rendezését. Egy topologikus rendezése:acbedf 16
17 22.) Mintaillesztés: Knuth-Morris-Pratt algoritmus A Knuth-Morris-Pratt eljárásnak a Brute-Force (hasonlítsuk össze, toljunk egyet, stb..) módszerrel szemben az az előnye, hogy egyes esetekben, ha a mintában vannak ismétlődő elemek, akkor egy tolásnál akár több karakternyit is ugorhatunk. Az ugrás megállapítását a következőképp tesszük: Az eddig megvizsgált egyező mintarész elején (prefix) és végén (suffix) olyan kartersorozatot keresünk, melyek megegyeznek. Ha találunk ilyet, akkor a mintát annyival tolhatjuk, hogy az elején lévő része ráilleszkedjen a végén levőre. A B A B A B A C A B A B A C A B A B A C Azt, hogy ez egyes esetekben mekkorát tolhatunk nem kell minden elromlás alkalmával vizsgálni. Ha a mintára önmagával lefuttatjuk az algoritmus egy módosított változatát, kitölthetünk egy tömböt, mely alapján a tolásokat végezni fogjuk. Ezután a tömb tartalma: Ami a következőt jelenti: Next[1] = 0 Next[2] = 0 Next[3] = 1 Next[4] = 2 Next[5] = Elromlás Tolás után... i i... A B A B A C A B A B A... i i... A B A B A C A B A B... i i... A B A B A C A B A B... i i... A B A B A C A B A B... i... i A B A B A C A B A B 17
18 Ezek után a KMP algoritmus a következőképp néz ki: Tehát: Addig megyünk, míg a minta vagy a szöveg végére nem érünk. Ha egyezik a két (köv.) karakter akkor lépünk mind a kettővel tovább Ha nem egyeznek, akkor vagy tolunk annyit, amennyit szabad, vagy ha a minta első betűjét vizsgáltuk, akkor egyet tolunk a mintán 23.) Mintaillesztés: Boyer-Moore algoritmus egy változata: Quick search Míg a KMP algoritmus az elromlás helye előtti rész alapján döntött a tolásról, addig a QS a minta utáni karakter alapján. Eltolás: Ha a minta utáni karakter benne van a mintában, akkor jobbról az első előfordulására illesztjük: A B A A C B C D A A C B C D A A C B C D Ha a minta utáni karakter nincs benne a mintában, akkor a mintát ezen karakter után illesztjük A B A A C B X D A A C B C D A A C B C D Az eltolás kiszámítását megint elő lehet segíteni egy tömbbel, most azonban, mivel nem a minta az érdekes, és nem tudjuk pontosan mely karakterek szerepelnek a szövegben, így a tömbbe az egész abc-t fel kell vennünk Az eltolást elősegítő tömb konstruálása (Shift['a'...'z'], ahol 'a'...'z' H elemei): 18
19 És a QS struktogramja: 24.) Mintaillesztés: Rabin-Karp algoritmus A Rabin-Karp algoritmus lényege, hogy minden betűhöz az abc-ből egy számjegyet rendelünk, és a keresést számok összehasonlításával végezzük. Világos, hogy ehhez egy abc méretnek megfelelő számrendszerre lesz szükségünk. A szöveget a minta hosszúságával egyező részenként vesszük és úgy végezzük az összehasonlítást. Pl: M = BBAC 1102 S = DACABBAC , amiből a következő számokat állítjuk elő: 3020, 0201, 2011, 0110, 1102 Ezek lesznek az s i -k Ehhez azonban számos apró ötletet kell alkalmaznunk 1. Horner módszer A mintát számmá Horner módszerrel alakítjuk át az ord() a karakter abc-ben elfoglalt helyét adja meg. (d a számrendszer alapszáma) 2. Szöveg számokká alakítása s 0 -t kiszámolhatjuk Horner módszerrel. Ezek után s i+1 a következőképp számítható: ss ii+1 = (ss ii oooooo(ss[ii]) dd mm 1 ) dd + oooooo(ss[ii + mm]) Azaz, ha s 0 = 3020, akkor ss 0+1 = (3020 oooooo(dd) 10 3 ) 10 + oooooo(bb) = ( ) = 201 (Ha a minta 4 hosszú, és az abc 10 elemű) 3. Túlcsordulás Felmerülhet a kérdés, hogy az ilyen magas alapszámú számrendszerek nem okoznak-e gondot az ábrázolásnál? A kérdés jogos. 19
20 Vegyük a következő életszerű példát: 4 bájton ábrázoljuk a számainkat ez 2 32 Az abc legyen 32 elemű, a minta 8 hosszú. Ekkor a d m-1 kiszámítása: (2 5 ) 7 = 2 35, ami már nem ábrázolható 4 bájton. A Rabin-Karp algoritmus ehhez vesz egy p nagy prímet. Melyre még d*p még ábrázolható. És mod p számolja a műveleteket. Ettől azonban lesz olyan, hogy a számítás egyezést talál, de a minta mégsem egyezik a szöveggel. Ez nem baj, mert ekkor karakterszinten ezt lehet ellenőrizni. Viszont, ha nincs egyezés akkor karakteres szinten sincs. (Ha p nagy, akkor ez a jelenség azonban ritka) 4. "óvatos számolás" Mivel mod p számolunk így előfordulhat, hogy a kivonás után negatív számot kapunk. Például, ha p=7 és és ord(s[i]) = 9, akkor s i =2..., ekkor ha kivonjuk a 9000-et, akkor negatív számot kapunk. (Ez a probléma valószínűleg csak gyakorlatban jön elő) Megoldásként s i+1 -t két lépésben számoljuk: ss (ss ii + dd pp oooooo(ss[ii]) dd mm 1 ) (mmmmmm pp) ss ii+1 ss dd + oooooo(ss[ii + mm]) (mmmmmm pp) 20
21 25.) Rendezések alsó korlát elemzése, legrosszabb eset (a matematikai számítás nélkül) Algoritmusok hatékonyságát a műveletigény kiszámításával fejezzük ki. A műveletigény a lépésszámban nyilvánul meg. Ezek után a műveletigény kiszámításához elég a domináns műveleteket figyelembe venni. Minden algoritmusra alsó korlát elemzést adunk. Ezzel határozzuk meg a minimális műveletigényét. Ehhez ú.n. döntési fában ábrázoljuk az absztrakt elemzést. Például rendező algoritmusok összehasonlítás számát tudjuk így elemezni. Vegyünk n=3 db inputot. Ezeknek bármilyen permutációja előfordulhat, így 3! = 6 féle input lehetséges. Ezek sorrendjének megállapítását ábrázoljuk a döntési fában: Láthatjuk, hogy a fa magassága 2 és 3 között van. Ez azt jelenti, hogy 3 input ra, legalább 2, legfeljebb 3 összehasonlítással, meg lehet állapítani a sorrendet. Erre a famagasságra általánosan is tudunk alsó korlátot adni. Lemma: h(tt RR (nn) llllll 2 (nn!) Bizonyítás: h(t) : famagasság, azaz a gyökértől legtávolabb lévő levél távolsága Ha teljes fa lenne, akkor ezen a szinten 2 h levél helyezkedne el. A levelek az eredmények, tehát 2 h n! ebből: h log 2 (n!) (Ez érvényes a fenti példára is: 8 = 2 3 3! =6) Tétel: MÖ R (n) = Ω(nlog(n)) Bizonyítás: Az előző lemma alapján: MÖ R (n) = h(t R (n)) log 2 (n!) MÖ R (n) = h t R (n) log 2 (n!) = log 2 (n!) = log 2 (n(n 1)(n 2) 2 1) = = log 2 (n) + log 2 (n 1) + + log log 2 1 = log 2 (i) log n x dx = 1 lnx dx ln2 i=1 1 1 = 1 ln2 [xlnx x] 1 n = 1 1 [nln(n) n (ln1 1)] = (nln(n) n + 1) ln2 ln2 = nlog 2 n n ln2 + 1 nlogn 1,44n + 1,44 = θ(nlogn) ln2 MÖ R (n) = Ω(nlogn) n n n 21
22 26.) Rendezések alsókorlát elemzése, átlagos eset (a matematikai számítás nélkül) Átlagos esetben az összehasonlítások számának átlagát vesszük. Ez a következőképp alakul: AÖ R (n) = 1 n! p perm Ö R (p) Azaz, vesszük minden permutációhoz tartozó összehasonlítás számot, és azokat átlagoljuk (összegüket elosztjuk a számukkal) Pl: Lhsum() - levélmagasságok összege A döntési fa alapján látjuk, hogy: AÖ R (3) = 1 16 ( ) = = 2, 6 3! 6 tehát: Ö R (p) = lhsum t R (n) p AÖ R (3) = 1 n! lhsum t R(n) Lemma: Az n! levelet tartalmazó tökéletes fák közül azokra a legkiseb az lhsum(t(n)) érték, melyek majdnem teljesek Bizonyítás: h(a) h(d) 2 h(c) h(d) 1 lhsum(t) lhsum(t ) = = 1 Általában 1, ill véges áthelyezéssel majdnem teljes fát kapunk Tétel: AÖ R (n) = Ω(nlogn) Bizonyítás: AÖ R (n) = 1 n! lhsum t R(n) 1 n! lhsum t opt (n) 1 n! n! (h t opt (n) 1 = h t opt (n) 1 log 2 (n!) 1 = Ω(nlogn) 22
23 Remélem sokat segít ez a kidolgozott anyag a felkészülésben. Használjátok egészséggel, de tartsátok észben, hogy ez nem egy hivatalos jegyzet, az esetleges hibákért nem áll módomban felelősséget vállalni. Ellenben az észrevételeket szívesen fogadom, és igyekszem javítani. A frissítések ezen a címen találhatóak majd meg: Ha lenne bármilyen kérdés, óhaj-sóhaj, akkor keressetek meg ben vagy facebookon: dobreffandras@gmail.com Jó tanulást! 23
GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév
GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév Az írásbeli vizsgán öt kérdést kell kidolgozni, A kérdések az alábbiak közül kerülnek kiválasztásra, a műfaji
Algoritmusok és adatszerkezetek II. régebbi vizsgakérdések.
Algoritmusok és adatszerkezetek II. régebbi vizsgakérdések. Ásványi Tibor asvanyi@inf.elte.hu 2017. július 4. Az eljárásokat és függvényeket megfelel en elnevezett és paraméterezett struktogramok segítségével
Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.
Algoritmuselmélet Mélységi keresés és alkalmazásai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 9. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.
5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. Optimalis feszítőfák Egy összefüggő, irányítatlan
Algoritmuselmélet 7. előadás
Algoritmuselmélet 7. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Március 11. ALGORITMUSELMÉLET 7. ELŐADÁS 1 Múltkori
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
Shannon és Huffman kód konstrukció tetszőleges. véges test felett
1 Shannon és Huffman kód konstrukció tetszőleges véges test felett Mire is jók ezek a kódolások? A szabványos karakterkódolások (pl. UTF-8, ISO-8859 ) általában 8 biten tárolnak egy-egy karaktert. Ha tudjuk,
Gráfalgoritmusok ismétlés ősz
Gráfalgoritmusok ismétlés 2017. ősz Gráfok ábrázolása Egy G = (V, E) gráf ábrázolására alapvetően két módszert szoktak használni: szomszédsági listákat, illetve szomszédsági mátrixot. A G = (V, E) gráf
Algoritmuselmélet 2. előadás
Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés
Mintaillesztő algoritmusok. Ölvedi Tibor OLTQAAI.ELTE
Mintaillesztő algoritmusok Ölvedi Tibor OLTQAAI.ELTE Mintaillesztő algoritmusok Amiről szó lesz: Bruteforce algoritmus Knuth-Morris-Pratt algoritmus Rabin-Karp algoritmus Boyer-Moore algoritmus Boyer-Moore-Horspool
Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.
Algoritmuselmélet Gráfok megadása, szélességi bejárás, összefüggőség, párosítás Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2. előadás
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen
32. A Knuth-Morris-Pratt algoritmus
32. A Knuth-Morris-Pratt algoritmus A nyers erőt használó egyszerű mintaillesztés műveletigénye legrosszabb esetben m*n-es volt. A Knuth-Morris-Pratt algoritmus (KMP-vel rövidítjük) egyike azon mintaillesztő
22. GRÁFOK ÁBRÁZOLÁSA
22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is
Rendezések. Összehasonlító rendezések
Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk
Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor
Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2
Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá
24. MINIMÁLIS KÖLTSÉGŰ UTAK I.
24. MINIMÁLIS KÖLTSÉGŰ UTAK I. Az útvonaltervezés az egyik leggyakrabban végrehajtott eljárása a gráfok alkalmazásai körében. A feladat például a közlekedésben jelentkezik. A gráfot itt az a térkép jelenti,
Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3
Síkgráfok Kuratowski-tétel: egy gráf akkor és csak akkor síkba rajzolható gráf, ha nincs olyan részgráfja, ami a K 5 -el, vagy a K 3,3 -altopologikusan izomorf (homeomorf). Euler síkgráfokra vonatkozó
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI Ebben a fejezetben aszimptotikus (nagyságrendi) alsó korlátot adunk az összehasonlításokat használó rendező eljárások lépésszámára. Pontosabban,
Algoritmuselmélet 6. előadás
Algoritmuselmélet 6. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Március 4. ALGORITMUSELMÉLET 6. ELŐADÁS 1 Hash-elés
Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:
Gráfok, definíciók Irányítatlan gráf: G = (V,E), ahol E rendezetlen (a,b),a,b V párok halmaza. Irányított gráf: G = (V,E) E rendezett (a,b) párok halmaza; E V V. Címkézett (súlyozott) gráf: G = (V,E,C)
15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.
15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
23. SZÉLESSÉGI BEJÁRÁS
23. SZÉLESSÉGI BEJÁRÁS A bejárási algoritmusok feladata általában a gráf csúcsainak végiglátogatása valamilyen stratégia szerint. A bejárás gyakran azért hajtjuk végre, mert adott tulajdonságú csúcsot
Haladó rendezések. PPT 2007/2008 tavasz.
Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés
Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}
Mélységi keresés Ez az algoritmus a gráf pontjait járja be, eredményképpen egy mélységi feszítőerdőt ad vissza az Apa függvény által. A pontok bejártságát színekkel kezeljük, fehér= érintetlen, szürke=meg-
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Fekete István jegyzetéből (részlet) 9. gyakorlat Forrás: http://people.inf.elte.hu/fekete/ Algoritmusok 2 / gráfalgoritmusok 1. Mélységi bejárás és alkalmazásai 1.1 Mélységi
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
Adatszerkezetek II. 1. előadás
Adatszerkezetek II. 1. előadás Gráfok A gráf fogalma: Gráf(P,E): P pontok (csúcsok) és E P P élek halmaza Fogalmak: Irányított gráf : (p 1,p 2 ) E-ből nem következik, hogy (p 2,p 1 ) E Irányítatlan gráf
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
A gráffogalom fejlődése
A gráffogalom fejlődése ELTE Informatikai Kar, Doktori Iskola, Budapest Batthyány Lajos Gimnázium, Nagykanizsa erdosne@blg.hu a prezentáció kézirata elérhető: http://people.inf.elte.hu/szlavi/infodidact16/manuscripts/ena.pdf
9. előadás. A táblázat. A táblázatról általában, soros, önátrendező, rendezett és kulcstranszformációs táblázat
. előadás ról általában, soros, önátrendező, rendezett és kulcstranszformációs Adatszerkezetek és algoritmusok előadás 0. április. ról általában,, és Debreceni Egyetem Informatikai Kar. Általános tudnivalók
Gyakorló feladatok ZH-ra
Algoritmuselmélet Schlotter Ildi 2011. április 6. ildi@cs.bme.hu Gyakorló feladatok ZH-ra Nagyságrendek 1. Egy algoritmusról tudjuk, hogy a lépésszáma O(n 2 ). Lehetséges-e, hogy (a) minden páros n-re
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.
A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:
A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.
Programozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Alapfogalmak a Diszkrét matematika II. tárgyból
Alapfogalmak a Diszkrét matematika II. tárgyból (A szakirány, 2015-2016 tavaszi félév) A számonkérés során ezeknek a definícióknak, tételkimondásoknak az alapos megértését is számon kérjük. A példakérdések
Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.
Algoritmuselmélet Bonyolultságelmélet Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 12. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?
Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf
EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF
Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 207. tavasz. Diszkrét matematika 2.C szakirány 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 207.
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk
1. Kódelmélet Legyen X = {x 1,..., x n } egy véges, nemüres halmaz. X-et ábécének, elemeit betűknek hívjuk. Az X elemeiből képzett v = y 1... y m sorozatokat X feletti szavaknak nevezzük; egy szó hosszán
Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:
Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek,
Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Fekete István előadása alapján Készítette: Nagy Krisztián 1. előadás V. HASÍTÁSOS TECHNIKÁK ALKALMAZÁSA (hash coding) 19. Rendezés lineáris időben (Edényrendezések (Bucket))
15. A VERSENYRENDEZÉS
15. A VERSENYRENDEZÉS A versenyrendezés (tournament sort) a maximum-kiválasztó rendezések közé tartozik, ugyanis az elemek közül újra és újra kiválasztja (eltávolítja és kiírja) a legnagyobbat. Az eljárás
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.
Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME
Programozás II. előadás
Nem összehasonlító rendezések Nem összehasonlító rendezések Programozás II. előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Programozás II. 2 Rendezés
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése
Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése Készítette: Bognár Gergő Témavezető: Veszprémi Anna Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék Budapest,
Adatszerkezetek II. 3. előadás
Adatszerkezetek II. 3. előadás Körmentes-e egy irányítatlan gráf? Alapötlet: Ha a bejárás során minden szürke pontból csak fehér pontba vezet él, akkor a gráf körmentes. 2013.02.27. 2 Körmentes?(p): Szín(p):=szürke;
Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.
Legrövidebb utak súlyozott gráfokban A feladat egy súlyozott gráfban egy adott pontból kiinduló legrövidebb utak megkeresése. Az input a súlyozott gráf és a kiindulási s pont. Outputként egy legrövidebb
Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása
1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június
Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor
Gráfok 1. Tárolási módok, bejárások előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Gráfok 1. Tárolási módok Szélességi
bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott
. Minimális súlyú feszítő fa keresése Képzeljük el, hogy egy útépítő vállalat azt a megbízást kapja, hogy építsen ki egy úthálózatot néhány település között (a települések között jelenleg nincs út). feltétel
INFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
III. Gráfok. 1. Irányítatlan gráfok:
III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:
Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008
Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció Gráfkeresési stratégiák Szemantikus hálók
Fraktál alapú képtömörítés p. 1/26
Fraktál alapú képtömörítés Bodó Zalán zbodo@cs.ubbcluj.ro BBTE Fraktál alapú képtömörítés p. 1/26 Bevezetés tömörítések veszteségmentes (lossless) - RLE, Huffman, LZW veszteséges (lossy) - kvantálás, fraktál
A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató INFORMTIK II. (programozás) kategória Kérjük a tisztelt tanár kollégákat, hogy a dolgozatokat
Gráfelméleti feladatok. c f
Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,
Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat
9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}
Példa Adott egy n n-es sakktábla. Az (1,1) mezőn áll egy huszár. Határozzuk meg eljuthat -e az (u,v) mezőre, ha igen adjunk meg egy legkevesebb lépésből álló utat! Adjunk algoritmust, ami megoldja a feladatot.
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:
1. Tétel Az állomány két sort tartalmaz. Az első sorában egy nem nulla természetes szám van, n-el jelöljük (5
17. A 2-3 fák és B-fák. 2-3 fák
17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak
Informatikai Rendszerek Alapjai
Informatikai Rendszerek Alapjai Dr. Kutor László A redundancia fogalma és mérése Minimális redundanciájú kódok 1. http://uni-obuda.hu/users/kutor/ IRA 2014 könyvtár Óbudai Egyetem, NIK Dr. Kutor László
Algoritmuselmélet 18. előadás
Algoritmuselmélet 18. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Május 7. ALGORITMUSELMÉLET 18. ELŐADÁS 1 Közelítő algoritmusok
Mohó algoritmusok. Példa:
Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus sokszor olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Ezt gyakran dinamikus programozás alapján
Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
Algoritmuselmélet Hashelés Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 9. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 9. előadás
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
A DFS algoritmus. Összeállította: Szeszlér Dávid, c BME Számítástudományi és Információelméleti Tanszék, 2015, 2016.
A DFS algoritmus Korábban már megismerkedtünk a BFS (Szélességi keresés) algoritmussal, amely bejárja egy adott G gráf adott s csúcsából elérhető csúcsokat és eközben több feladatot is hatékonyan megold:
Gráf-algoritmusok Legrövidebb utak
https://www.cs.princeton.edu/~rs/algsds07/15shortestpaths.pdf Gráf-algoritmusok Legrövidebb utak Sapientia-EMTE 2017-18 Typesetting in TeX Két pont között, akkor van él, ha közéjük 1 2 3 4 eső szó szekvencia
A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató INFORMATIKA II. (programozás) kategória Kérjük a tisztelt tanár kollégákat, hogy a
Harmadik gyakorlat. Számrendszerek
Harmadik gyakorlat Számrendszerek Ismétlés Tízes (decimális) számrendszer: 2 372 =3 2 +7 +2 alakiérték valódi érték = aé hé helyiérték helyiértékek a tízes szám hatványai, a számjegyek így,,2,,8,9 Kettes
Gráfalgoritmusok 3 Néhány probléma modellezése gráfokkal 3 Alapfogalmak, jelölések 7 Gráfok ábrázolása 9 Bejárási stratégiák, szélességi bejárás 15
Gráfalgoritmusok 3 1. Néhány probléma modellezése gráfokkal 3 1.1 Útkeresés 3 1.2 Minimális költségű út keresése 4 1.3 Minimális költségű feszítőfa keresése 4 1.4 Irányított körmentes gráf (DAG) topologikus
Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:
Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,
A félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2016. tavasz 1. Diszkrét matematika 2. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2016. ősz 1. Diszkrét matematika 2.C szakirány 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2016.
Komputeralgebrai Algoritmusok
Komputeralgebrai Algoritmusok Adatábrázolás Czirbusz Sándor, Komputeralgebra Tanszék 2015-2016 Ősz Többszörös pontosságú egészek Helyiértékes tárolás: l 1 s d i B i i=0 ahol B a számrendszer alapszáma,
1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007
Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii
2. Visszalépéses keresés
2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel