Algoritmusok II. gyakorló feladatok (2016)
|
|
- Kinga Pataki
- 8 évvel ezelőtt
- Látták:
Átírás
1 Algoritmusok II. gyakorló feladatok (2016) Rendezés lineáris id ben 1.1. Rendezzük számjegypozíciós listarendezéssel a 013, 200, 010, 321, 213, 201 négyes számrendszerbeli számok egyszer láncolt listáját! Mutassuk be a fenti példán az algoritmus m ködését! Tegyük meg ezt a 31, 21, 30, 22, 01, 23 listára is! 1.2. Rendezzük számjegypozíciós (Radix) rendezéssel a 013, 200, 010, 321, 213, 201 négyes számrendszerbeli számok tömbjét! Az egyes menetekben leszámláló rendezést alkalmazzunk! Mutassuk be a fenti példán az algoritmus m ködését! Tegyük meg ezt a 31, 21, 30, 22, 01, 23 tömbre is! 1.3. Az A[1..n] vektort szeretnénk rendezni. A vektor elemtípusának kulcsfüggvénye ϕ = (ϕ k,... ϕ 2, ϕ 1 ) alakú, és az elemeket a fenti, összetett kulcsfüggvény szerint lexikograkusan rendezve, monoton növekv en kell sorbarakni. Adott a rendezi(a[1..n],i,b[1..n]) eljárás, amely az A[1..n] tömböt a ϕ i kulcsfüggvény szerint, rendezéstartó módon, monoton növekv en a B[1..n] tömbbe rendezi, ahol T (n, k) O(f(n)). (Ezt nem kell megírni!) Írjuk meg a rendez(a[1..n]) eljárást, amely megoldja az eredeti rendezési feladatot, ahol T (n, k) O(k f(n)) Írjuk meg a negpoz(a[1..n]) eljárást, ami az A[1..n] vektor elejére rendezi a negatív elemeket, a végére pedig a nemnegatívakat! T (n) O(n), M(n) O(1) Adott az A[1..n] tömb, amelynek elemei k bites, nemnegatív egész számok. Írjuk meg a Bincsere(A[1..n]) eljárást, ami a tömböt monoton növekv en, bináris cserével helyben rendezi, ahol T (n, k) O(k n). Az alkalmazandó algoritmus: A legmagasabb helyiérték szerint kettéosztjuk a tömb elemeit, majd a résztömböket a második legmagasabb helyiérték szerint osztjuk ketté stb. (Ötlet: Használjuk ehhez a bcs(a[u..v],m) eljárást, ami az A[u..v] résztömböt a legalacsonyabb helyiérték m bit szerint rendezi.) Hasító táblák 2.1. A T[0..M-1] hasító tábla rései (slot-jai) egyirányú, nemciklikus, fejelem nélküli, rendezetlen láncolt listák pointerei. Adott a hash(kulcs) = kulcs mod M tördel függvény (hash-függvény). Feltehet, hogy a tábla kulcsok szerint egyértelm. 1
2 2.1.a. Írjuk meg az ins(t[],m,k,a) : 0..2 érték függvényt, ami beszúrja a T[0..M-1] hasító táblába a (k,a) kulcs-adat párt! Akkor és csak akkor ad vissza 0 értéket, ha sikeres volt a beszúrás. Ilyenkor az új listaelemet a megfelel lista elejére szúrjuk be! Ha a táblában már volt k kulcsú elem, a beszúrás meghiúsul, és 2 hibakódot adjunk vissza. Különben, ha nem tudjuk már a szükséges listaelemet allokálni, 1 hibakódot adjunk vissza! Feltehet, hogy a szükséges memória allokátor m velet sikertelenség esetén pointert ad vissza. 2.1.b. Írjuk meg a search(t[],m,k) függvényt, ami visszaadja a T-beli, k kulcsú elem címét, vagy a pointert, ha ilyen nincs! 2.1.c. Írjuk meg a del(t[],m,k) logikai függvényt, ami törli a T[0..M-1] hasító táblából a k kulcsú adatot! Akkor és csak akkor ad vissza true értéket, ha sikeres volt a törlés, azaz a táblában volt k kulcsú elem. Ilyenkor a feleslegessé váló listaelemet deallokáljuk! 2.1.d Mutassuk be, mi történik, ha sorban beszúrjuk a hasító táblába a következ kulcsokat: 5; 28; 19; 15; 20; 33; 12; 17; 10. Az egyszer ség kedvéért legyen M = 9, és legyen a hasító függvény a következ : h(k) = k mod A T[0..M-1] hasító táblát nyílt címzéssel ábrázoltuk. Adott a h 1 (kulcs) = kulcs mod M tördel függvény (hash-függvény). Feltehet, hogy a tábla kulcsok szerint egyértelm. 2.2.a. Írjuk meg az ins(t[],m,k,a) : 0..2 érték függvényt, ami beszúrja a T[0..M-1] hasító táblába a (k,a) kulcs-adat párt! Akkor és csak akkor ad vissza 0 értéket, ha sikeres volt a beszúrás. Ha a táblában már volt k kulcsú elem, a beszúrás meghiúsul, és 2 hibakódot adjunk vissza. Különben, ha a táblában már nincs szabad hely, 1 hibakódot adjunk vissza! A kulcsütközést lineáris próbával oldjuk fel! Ne feledkezzünk el az üres és a törölt rések (slot-ok) megkülönböztetésér l! 2.2.b. Írjuk meg a search(t[],m,k,a) logikai függvényt, megkeresi a T[0..M-1] hasító táblában a k kulcshoz tartozó a adatot! Akkor és csak akkor ad vissza true értéket, ha sikeres volt a keresés, azaz a táblában volt k kulcsú elem. (Sikertelen keresés esetén a deniálatlan marad.) A kulcsütközést lineáris próbával oldjuk fel! Ne feledkezzünk el az üres és a törölt rések (slot-ok) megkülönböztetésér l! 2.2.c. Írjuk meg a del(t[],m,k) logikai függvényt, ami törli a T[0..M-1] hasító táblából a k kulcsú adatot! Akkor és csak akkor ad vissza true értéket, ha sikeres volt a törlés, azaz a táblában volt k kulcsú elem. A kulcsütközést lineáris próbával oldjuk fel! Ne feledkezzünk el az üres és a törölt rések (slot-ok) megkülönböztetésér l! 2.3. Oldjuk meg a 2.2 feladatot négyzetes próba esetére! (c 1 = c 2 = 1/2) 2
3 2.4. Írjuk meg a 2.2 feladat algoritmusait kett s hash-elés esetére! A másodlagos hash függvény: h 2 (kulcs) = 1 + (kulcs mod (M 1)) Mutassuk be a feladatokban szerepl algoritmusok m ködését papíron, konkrét adatokkal, M=11 esetén! (Mi lehet a baj a négyzetes próbával?) Vegyünk például egy kezdetben üres hasító táblát, és szúrjuk be egymás után a következ kulcsokat: 10; 22; 31; 4; 15; 28; 17; 88; 59. Ezután töröljük a 17-et, majd próbáljuk megkeresni a 18-at és az 59-et, végül pedig szúrjuk be a 18-at! Nyílt címzés esetén minden egyes m velethez adjuk meg a próbasorozatot is! Gráfok ábrázolásai 3.1. A b pointer egy bináris láncolt ábrázolású általános fa gyökércsúcsára mutat. Csúcsait az 1..n számok egyértelm en címkézik. Írjuk meg a b2g(b,adj[1..n]) eljárást, ami a fát átmásolja az Adj[1..n] pointertömb segítségével reprezentált, éllistás ábrázolású gráfba! (A híváskor Adj[1..n] nem deniált.) T (n) O(n), M(n) O(n), ahol n a fa csúcsainak száma Az Adj[1..n] pointertömb egy élsúlyozatlan gráf éllistás ábrázolása, amir l tudjuk, hogy gyökeres fa. Írjuk meg a g2b(adj[1..n],b) eljárást, ami a gráfként ábrázolt fát átmásolja a b gyökérpointer, bináris láncolt ábrázolású általános fába! (A híváskor b nem deniált hivatkozás.) T (n) O(n), M(n) O(n), ahol n a fa csúcsainak száma. Ötlet: használjunk egy T[1..n] pointer segédtömböt, ahol T[i] az eljárás által létrehozott fa i kulcsú csúcsára mutat! (i 1..n) 3.3. Egy gráf csúcsai az 1..n egész számok. A gráf egy bejárásának eredménye a P[1..n] vektorban ábrázolt feszít fa: Minden i csúcsra P[i] az i szül je a fában, kivétel a gyökércsúcs, amire P[i]==0, és a bejárás során el nem ért csúcsok, ahol P[i]==-1. Írjuk meg az fb(p[1..n],t) eljárást, ami a feszít fáról binárisan láncolt általános fa másolatot készít! (Az eredmény gyökérpointere t.) A láncolt reprezentációban a testvérek listái index szerint növekv en rendezettek legyenek! T (n) O(n), M(n) O(n) (Ötlet: a megoldáshoz használjuk a T[1..n] pointer-segédtömböt: T[i] mutasson a láncolt fa i cimkéj csúcsára, ha a feszít fa tartalmazza a csúcsot! A P[1..n] vektort fordítva (n-t l 1-ig visszafelé) érdemes feldolgozni.) 3.4. Egy gráf csúcsai az 1..n egész számok. A gráf egy bejárásának eredménye a P[1..n] vektorban ábrázolt feszít fa: Minden i csúcsra P[i] az 3
4 i szül je a fában, kivétel a gyökércsúcs, amire P[i]==0, és a bejárás során el nem ért csúcsok, ahol P[i]==-1. Err l a t binárisan láncolt általános fa másolatot készítettük. A P[1..n] vektor már nem érhet el. Írjuk meg a bf(t,p[1..n]) eljárást, ami a t általános fából rekonstruálja az eredeti P[1..n] feszít fát! T (n) O(n), M(n) O(n) (Ötlet: Töltsük fel a P[1..n] vektort -1 értékekkel, majd járjuk be a t általános fát preorder módon úgy, hogy mindig ismerjük az aktuális csúcs szül jét és ezt be is írjuk a P[1..n] vektorba a megfelel helyre.) 3.5. Egy gráfbejárás eredménye a P[1..n] feszít fa. i,j eleme 1..n esetén: P[i]=j akkor, ha az i. csúcs szül je a feszít fában a j. csúcs. P[i]=0 akkor, ha az i. csúcs a feszít fa gyökere. P[i]<0 akkor, ha az i. csúcs nincs benne a fában. Írjuk meg a melysegek(p[1..n],d[1..n]) eljárást, ami kiszámítja a d[1..n] vektort, ami sorban az egyes csúcsok feszít fa-beli mélységeit tartalmazza! A gyökér mélysége 0. d[i] végtelen akkor, ha az i. csúcs nincs benne a fában. T (n) O(n), M(n) O(n). A megoldáshoz ne használjunk láncolt adatszerkezetet! (Ötlet: Készítsük el a melyseg(p[1..n],i,d[1..n]) rekurzív segédeljárást, ami kiszámítja az i. csúcs és ha kell, az sei mélységét! 3.6. Egy körmentes irányított gráfot a G[1..n] pointertömb segítségével éllistásan ábrázoltunk. Írjuk meg a gyf(g[1..n]) függvényt, ami visszaadja a gyökércsúcs indexét, ha a gráf egy gyökeres fa, különben nullát ad vissza! T (n) O(n + e), ahol e az élek száma. M(n) O(n). (Ötlet: alkalmazhatunk egy segédtömböt, amibe beírjuk a csúcsok szül jének indexét.) Szélességi gráfbejárás 4.1. Szemléltessük a szélességi bejárás m ködését az alábbi gráfokon az s index csúcsból indítva! Mutassuk be a sor, a d és a π értékek alakulását a gyakorlatról ismert módon! Nemdeterminisztikus esetekben mindig a kisebb index csúcsot dolgozzuk fel el ször! Végül rajzoljuk le a mélységi feszít fát, amit az algoritmus kiszámolt! 4.1.a s = 5 4
5 b 1 s = 3 1 2; ; c s = ; 3; ; ; ; d 2, s = 4 1 2; ; ; 6; ; 7; ; 3; ; 4; 6; ; Az Adj[1..n] pointertömb egy élsúlyozatlan gráf éllistás ábrázolása. Írjuk meg az SZB(Adj[1..n],s,d[1..n],P[1..n]) eljárást, ami az s kezd csúcsból indítva szélességi módon járja be a fát! A csúcsok mélységeit a d[1..n], a mélységi feszít fát pedig a P[1..n] tömbben számoljuk ki, amik a híváskor deniálatlan értékeket tartalmaznak! T (n, e) O(n + e), M(n) O(n), ahol n a gráf csúcsainak, e pedig az éleinek száma Egy erd ben van két mókus, mindkett ugyanakkorát tud ugrani. Két különböz fán vannak. Mindkett elkezd fáról fára ugrálni. Ugyanannyit ugranak, de nem okvetlenül egyszerre. Kérdés, közben találkozhatnak-e? Modellezzük a problémát, és írjunk rá struktogramot! T (n, e) O(n + e), ahol n a fák, e pedig az erd ben a mókusok számára lehetséges, fáról fára való ugrások száma. (Vigyázat, nem biztos, hogy egy ilyen ugráshoz mindig lehetséges a visszaugrás is! Másrészt az e szám nem a tényleges ugrások száma, hanem a lehetséges, egymástól páronként különböz, fáról fára való ugrások száma.) 1 u v 1 ;... v n. azt jelenti, hogy a gráfnak a következ irányított élei vannak: (u, v 1 ),... (u, v n ). 2 u v 1 ;... v n. azt jelenti, hogy a gráfnak a következ irányítatlan élei vannak: (u, v 1 ),... (u, v n ). 5
6 Ötlet: Indítsunk két m mélység szélességi gráfbejárást a két adott csúcsból (az m mélység csúcsok gyerekeit már nem tesszük a sorba). Akkor találkozhatnak, ha a második bejárás elér legalább egy, az els által is érintett csúcsot. Mélységi gráfbejárás 5.1.a Szemléltessük a mélységi bejárás m ködését az alábbi gráfon! Írjuk az elérési számokat és a befejezési számokat a gráf grakus ábrázolásán a csúcsok mellé! Jelezzük a különböz éltípusokat a szokásos módon! Nemdeterminisztikus esetekben mindig a kisebb index csúcsot dolgozzuk fel el ször! Adjuk meg a gráf csúcsainak a mélységi bejárásból adódó topologikus rendezését! ; ; ; Egy irányított gráf csúcsait az 1..n számokkal címkéztük. A gráfot a C[1..n,1..n] csúcsmátrix segítségével ábrázoljuk. Feltesszük, hogy a gráf nem tartalmaz irányított kört. Csúcsai egy topologikus rendezését, azaz ütemezését állítjuk el a TR[1..n] vektorban. Adott a be[1..n] tömb, ami kezdetben a csúcsok bemeneti fokszámait tartalmazza. Egy i csúcs akkor ütemezhet be, ha be[i]==0. Ha egy csúcsot beütemezünk, akkor a közvetlen rákövetkez i be[j] értékeit eggyel csökkentjük. (Struktogram: TopRend(C[1..n,1..n],be[1..n],TR[1..n])) T (n) O(n 2 ), M(n) O(n) 5.3. Írjunk struktogramot gráfok a topologikus rendezésének alábbi változatára! Egy irányított gráf csúcsait az 1..n számokkal címkéztük. A gráfot éllistásan ábrázoltuk a G[1..n] pointertömb segítségével. Ha a gráf nem tartalmaz irányított kört, csúcsai egy topologikus rendezését, azaz ütemezését állítjuk el a TR[1..n] vektorban, és true értékkel térünk vissza. (Ha egy csúcsból egy másikba irányított út vezet, akkor az els a parciális rendezésben kisebb sorszámmal szerepel. Ha két csúcs között nincs irányított út, a parciális rendezésben a sorrendjük közömbös.) Ha a gráf tartalmaz irányított kört, false értékkel térünk vissza. A struktogramot az alábbi algoritmus szerint kell megírni. (Struktogram: TopRend(G[1..n],be[1..n],TR[1..n]):bool) T (n, e) O(n + e), ahol e az élek száma; M(n) O(n) Algoritmus: Adott a be[1..n] tömb, ami kezdetben a csúcsok bemeneti fokszámait tartalmazza. (Ez tehát a programunk számára adott, nem kell megírni.) Egy 6
7 i csúcs akkor ütemezhet be, ha még nem ütemeztük be, és be[i]=0. Az algoritmus minden lépésében egy beütemezhet csúcsot ütemezünk be, azaz betesszük a PR[1..n] vektorba, az els szabad helyre. A beütemezhet csúcsok egy Q sorban vannak. Ha egy csúcsot beütemezünk, akkor a közvetlen rákövetkez i be[j] értékeit eggyel csökkentjük. Ha a sor elfogy, aszerint térünk vissza true értékkel, hogy minden csúcsot beütemeztünk-e Egy irányított gráfot a G[1..n] pointertömb segítségével éllistásan ábrázoltunk. Írjuk meg a gye(g[1..n],q) eljárást, ami visszaadja a Q sorban a gyökércsúcsok indexeit, ha a gráf egy erd, azaz gyökeres fák halmaza, különben a Q sort üresen adja vissza! T (n) O(n+e), ahol e az élek száma. M(n) O(n). Ötlet: Írjunk mélységi bejárást, a következ módosítással. Ha fehér csúcsot találunk, a szokásos módon folytatjuk. Ha szürke csúcsot találunk, akkor irányított kört is találtunk, és a gráf nem erd. Ha fekete csúcsot találunk, két eset van. (1) Ha ez (a mondjuk j csúcs) egy korábban felépített részleges feszít fa gyökere (P[j]=\NIL), akkor becsatoljuk abba a fába, amit éppen most építünk a P[1..n] tömbben. (2) Ha nem gyökércsúcsot találtunk, akkor ennek a csúcsnak a bemeneti fokszáma nagyobb mint 1, tehát a gráf nem erd. Ha végigmegy a bejárás, és nem találunk sem szürke, sem második típusú fekete csúcsot, akkor a gráf egy erd, csak a fái gyökércsúcsait a P[1..n] tömbb l a Q sorba kell másolni. Különben Q üresen marad Az alábbi gráfon szemléltessük a gyakorlatról ismert módon (a) a mélységi bejárásos (b) a csúcsok bemeneti fokszámait felhasználó topologikus rendezés algoritmusát! (Ez két külön feladat.) ; Minimális feszít fák 6.1. Az alábbi egyszer gráfon szemléltessük a gyakorlatról ismert módon (a) a Kruskal algoritmust, (b) az egyes sorszámú csúcsból indított Prim algoritmust! Mindkét esetben adjuk meg a kapott minimális feszít fát is! (A - jelek a végtelen szimbólumot helyettesítik.) 7
8 * Általánosítsuk a Prim algoritmust arra az esetre, ha a gráf nem összefügg, és így nem tudunk feszít fát, csak feszít erd t megadni! A gráfot a szimmetrikus C költségmátrix segítségével ábrázoljuk. (Struktogram: Prim(C[1..n,1..n],d[1..n],P[1..n])) T (n) O(n 2 ), M(n) O(n) 6.3.* Írjunk struktogramot a Prim algoritmus alábbi változatára! Egy nem okvetlenül összefügg, súlyozott irányítatlan gráf csúcsait az 1..n számokkal címkéztük. A gráfot éllistásan ábrázoltuk a G[1..n] pointertömb segítségével. A gráf egy minimális feszít erd jét állítjuk el a Prim algoritmus segítségével, a P[1..n] vektorban. A minimális feszít erd fáit a gráf összefügg komopenseinek minimális feszít fái adják. A feszít fákat a P[1..n] vektorban irányított fákként ábrázoljuk, és minden él az t tartalmazó feszít fa gyökere felé irányítva jelenik meg. A d[1..n] vektor a P[1..n] vektorban visszadott élek súlyait fogja tartalmazni: j>0 esetén P[i]=j jelentése, hogy az (i,j) él eleme az egyik feszít fának. Ilyenkor d[i] tartalmazza az (i,j) él súlyát (azaz költségét). P[i]=0 jelentése, hogy i az egyik feszít fa gyökere. Ilyenkor d[i]=0 lesz. Ha a Prim algorimus során egy csúcs még nincs feszít fában, de szomszédja az éppen épített feszít fa egy vagy több csúcsának, akkor azt mondjuk, hogy szomszédja ennek a feszít fának, és a feszít fától való távolsága egy minimális súlyú él költsége, ami t a feszít fához kapcsolja. A struktogramot a fenti fogalmak és ábrázolás, valamint az alábbi algoritmus szerint kell megírni. (Struktogram: Prim(G[1..n],P[1..n],d[1..n])) T (n) O(n 2 ), M(n) O(n) Algoritmus: I. Kezdetben egyik csúcs sincs feszít fában. P[1..n]:=-1; d[1..n]:=infinite; II. Válasszunk ki egy tetsz leges s csúcsot, ami még nincs feszít fában! Legyen ez egy új feszít fa gyökere! P[s]:=0; d[s]:=0 III. A most kiválasztott csúcs minden olyan j szomszédjára, ami még nincs a feszít fában, állítsuk be a P[j] és d[j] értékeket, a j csúcsnak a feszít fától való távolsága szerint! 8
9 IV. Ha a feszít fának van szomszédja, válasszunk ki egyet, ami minimális távolságra van t le (ezt a d[1..n] tömbön egy feltételes minimumkiválasztással oldjuk meg), és a kiválasztott csúcsot vegyük hozzá a feszít fához, majd folytassuk a III. ponttól! V. Ha a feszít fának nincs szomszédja, akkor az aktuális feszít fa kész van. VI. Ha van még olyan csúcs ami egyetlen feszít fában sincs benne, folytassuk a II. ponttól! VII. Különben a feszít erd is kész van Adjuk meg Kruskal algoritmusában az Unió-HolVan adatszerkezetet inicializáló eljárás, továbbá a HolVan függvény és az Unió eljárás struktogramját! Legrövidebb utak egy forrásból: Sor alapú Bellman-Ford algoritmus 7.1. Írjuk meg Sor alapú Bellman-Ford algoritmust arra az esetre, ha a gráfot éllistásan ábrázoljuk a G[1..n] pointertömb segítségével! (Struktogram: QBF(G[1..n], d[1..n], P [1..n]) eljárás.) T (n) O(n e), ahol e az élek száma. M(n) O(1). 7.2.** Próbáljuk meg a fenti Sor alapú Bellman-Ford algoritmust kiegészíteni a negatív kör gyelésével! Alakítsuk át az eljárást függvénnyé, ami 0 értéket ad vissza, ha nem talált negatív kört, különben pedig a negatív kör egy csúcsának indexét. Ez utóbbi esetben d[1..n] és P[1..n] deniálatlan marad Szemléltessük a Sor alapú Bellman-Ford FIFO algoritmus m ködését az alábbi gráfon a 4 index csúcsból indítva! Mutassuk be a d[1..6] (elérési költségek) és a P[1..6] (feszít fa) tömbök, valamint a sor alakulását! Egy sor az egy csúcsból kimen élek feldolgozása legyen! Nemdeterminisztikus esetekben mindig a kisebb index csúcsot dolgozzuk fel el ször! 1 2, 2; 5, , 2; 5, , , 1; 2, 4; 3, Legrövidebb utak egy forrásból körmentes irányított gráfokra 8.1. Szemléltessük az alábbi gráfon a DAG legrövidebb utak egy forrásból algoritmus m ködését, ha a kettes csúcs a startcsúcs! 1 2, 2; 5, , 2; 5, , -1; 5, , 1; 6, , 2 6. Legrövidebb utak egy forrásból: Dijkstra algoritmus 9
10 9.1. Szemléltessük a Dijkstra algoritmus m ködését az alábbi gráfon, a 3 index csúcsból indítva! (A - jel a plusz végtelen-t jelöli.) Mutassuk be a d[1..6] (elérési költségek) és a P[1..6] (feszít fa) tömbök alakulását! Minden sor mellett jelezzük, hogy az melyik csúcs kiterjesztéséb l adódott! Nemdeterminisztikus esetekben mindig a kisebb index csúcsot dolgozzuk fel el ször! Adjuk meg a kapott feszít fát is! Az alábbi egyszer gráfon szemléltessük a gyakorlatról ismert módon az egyes sorszámú csúcsból indított Dijkstra algoritmust! Adjuk meg a kapott feszít fát is! (A - jelek a végtelen szimbólumot helyettesítik.) Floyd-Warshall algoritmus Szemléltessük a Floyd-Warshall algoritmus m ködését az alábbi gráfon a (D (0), Π (0) ),..., (D (3), Π (3) ) mátrix párok megadásával! A gráf az alábbi csúcsmátrixszal adott Szemléltessük a Floyd-Warshall algoritmus m ködését az alábbi gráfon a (D (0), Π (0) ),..., (D (4), Π (4) ) mátrix párok megadásával! A gráf az alábbi csúcsmátrixszal adott. 10
11 Gráfok tranzitív lezártja Szemléltessük Warshall, gráfok tranzitív lezártját meghatározó algoritmusának m ködését az alábbi (csúcsmátrixszal adott) gráfon a T (0),..., T (3) mátrixok megadásával! Szemléltessük Warshall, gráfok tranzitív lezártját meghatározó algoritmusának m ködését az alábbi (csúcsmátrixszal adott) gráfon a T (0),..., T (4) mátrixok megadásával!
12 32 String Matching 32.1 The naive string-matching algorithm Show the comparisons the naive string matcher makes for the pattern P = 0001 in the text T = Suppose that all characters in the pattern P are dierent. Show how to accelerate NAIVE-STRING-MATCHER to run in time O(n) on an n- character text T The Rabin-Karp algorithm Working modulo q = 11, how many spurious (i.e. false) hits does the Rabin-Karp matcher encounter in the text T = when looking for the pattern P = 26? How would you extend the Rabin-Karp method to the problem of searching a text string for an occurrence of any one of a given set of k patterns? Start by assuming that all k patterns have the same length. Then generalize your solution to allow the patterns to have dierent lengths Show how to extend the Rabin-Karp method to handle the problem of looking for a given m m pattern in an n n array of characters (1 m n). (The pattern may be shifted vertically and horizontally, but it may not be rotated.) 32.4 The Knuth-Morris-Pratt algorithm Compute next[1..19] (also called pref ix or π function) for the pattern ababbabbabbababbabb a Compute next[1..4] for the pattern P = Show the comparisons the Knuth-Morris-Pratt string matcher makes for this pattern in the text T = b Compute next[1..5] for the pattern P = abaab. Show the comparisons the Knuth-Morris-Pratt string matcher makes for this pattern in the text T = aaababaabaababaab c Compute next[1..6] for the pattern P = aabaab. Show the comparisons the Knuth-Morris-Pratt string matcher makes for this pattern in the text T = aaabaabaabaababaab. 12
13 32.4.2d Compute next[1..6] for the pattern P = babbab. Show the comparisons the Knuth-Morris-Pratt string matcher makes for this pattern in the text T = ababbabbababbababbabb e Compute next[1..7] for the pattern P = ABABAKI. Show the comparisons the Knuth-Morris-Pratt string matcher makes for this pattern in the text T = BABALABABAT IBABABAKI Explain how to determine the occurrences of pattern P in the text T by examining next[1.. P T ] Give a linear-time algorithm to determine whether a text T is a cyclic rotation of another string T. For example, arc, rca, and car are cyclic rotations of each other. 32.x The Quick Search algorithm < Searching.ppt> 32.x.1 Compute shif t[0..1] for the pattern P = 000. Show the comparisons the Quick Search string matcher makes for this pattern in the text T = x.2 Compute shift[ A.. F ] for the pattern P = ABABACD. Show the comparisons the Quick Search string matcher makes for this pattern in the text T = BABAEABABAF DBABABACD. 32.x.3 Compute shift[ A, C, G, T ] for the pattern P = GCAGAGAG. Show the comparisons the Quick Search string matcher makes for this pattern in the text T = GCAT CGCAGAGAGT AT ACAGT ACG. 13
14 DC Data Compression DC.1 The Human coding < DC.1.1 We would like to compress the text MATEKFELELETEMKETTESLETT with Human coding. Draw the Human tree, give the Human code of each letter, the Human code of the text, and the length of the latest in bits. Show the letters of the original text in the Human code of it. DC.1.2 Solve Exercise DC.1.1 with the following text. DC.2 EMESE MAI SMSE NEM NAIV MESE The LempelZivWelch (LZW) algorithm < DC.2.1 We have compressed a text with the Lempel-Ziv-Welch algorithm. The text contains letters 'A', 'B', and 'C'. Their codes are 1, 2, and 3 in turn. While building the dictionary, for the code of each new word the rst unused positive integer was selected. In this way we have received the following code Give the original text, and the complete dictionary. DC.2.2 Solve Exercise DC.2.1 with the following LZW code
Algoritmusok II. gyakorló feladatok
Algoritmusok II. gyakorló feladatok Ásványi Tibor 2019. március 15. Mj.: Az alábbi anyagban M S az algoritmusok maximális munkatárigényére vonatkozik. Ez nem tartalmazza az input
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
Algoritmusok és adatszerkezetek I. régebbi vizsgakérdések.
Algoritmusok és adatszerkezetek I. régebbi vizsgakérdések. Ásványi Tibor asvanyi@inf.elte.hu 2019. június 22. A vizsgákon természetesen olyan kérdések is szerepelhetnek, amelyek a régebbi vizsgákon nem
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
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
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
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
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
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
Algoritmusok és adatszerkezetek II. Útmutatások a tanuláshoz, Tematika (2016)
Algoritmusok és adatszerkezetek II. Útmutatások a tanuláshoz, Tematika (2016) Kedves Hallgatók! A vizsgára való készülésben els sorban az el adásokon és a gyakorlatokon készített jegyzeteikre támaszkodhatnak.
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
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
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
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 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
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
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
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
end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..
A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6
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
1. tétel - Gráfok alapfogalmai
1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési
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
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),
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
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 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
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
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
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
Gyakori elemhalmazok kinyerése
Gyakori elemhalmazok kinyerése Balambér Dávid Budapesti M szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudomány szakirány 2011 március 11. Balambér Dávid (BME) Gyakori
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
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
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,
Programozás I. - 11. gyakorlat
Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar
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,...,
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.
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok
6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
Elemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Táblázatok fontosabb műveletei 1
Táblázatok fontosabb műveletei 1 - - Soros táblázat procedure BESZÚR1(TÁBLA, újelem) - - beszúrás soros táblázatba - - a táblázatot egy rekordokat tartalmazó dinamikus vektorral reprezentáljuk - - a rekordok
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
Hierarchikus adatszerkezetek
5. előadás Hierarchikus adatszerkezetek A hierarchikus adatszerkezet olyan < A, R > rendezett pár, amelynél van egy kitüntetett r A gyökérelem úgy, hogy: 1. r nem lehet végpont, azaz a A esetén R(a,r)
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
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
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)
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
Mapping Sequencing Reads to a Reference Genome
Mapping Sequencing Reads to a Reference Genome High Throughput Sequencing RN Example applications: Sequencing a genome (DN) Sequencing a transcriptome and gene expression studies (RN) ChIP (chromatin immunoprecipitation)
file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html
1 / 6 2018.01.20. 23:23 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes tananyagának
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
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
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
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:
Csima Judit április 9.
Osztályozókról még pár dolog Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. április 9. Csima Judit Osztályozókról még pár dolog 1 / 19 SVM (support vector machine) ez is egy
2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)
A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
Adatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
2. Visszalépéses stratégia
2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:
Algoritmusok és adatszerkezetek I. 1. előadás
Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28.
10. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 2-3 fák Hatékony keresőfa-konstrukció. Ez is fa, de a binárisnál annyival bonyolultabb hogy egy nem-levél csúcsnak 2 vagy 3 fia
Önszervező bináris keresőfák
Önszervező bináris keresőfák Vágható-egyesíthető halmaz adattípus H={2,5,7,11,23,45,75} Vag(H,23) Egyesit(H1,H2) H1= {2,5,7,11} H2= {23,45,75} Vágás A keresési útvonal mentén feldaraboljuk a fát, majd
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
Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21
Bonyolultságelmélet Thursday 1 st December, 2016, 22:21 Tárbonyolultság A futásidő mellett a felhasznált tárterület a másik fontos erőforrás. Ismét igaz, hogy egy Ram-program esetében ha csak a használt
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
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
Adatszerkezetek I. 6. előadás
Adatszerkezetek I. 6. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá: Üres: Táblázat
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,
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,
Bevezetés a programozásba I.
Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy
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,
Algoritmusok és adatszerkezetek I. 5. előadás
Algoritmusok és adatszerkezetek I. 5. előadás Táblázat A táblázat olyan halmazféleség, amelyben az elemeket kulcsértékkel azonosítjuk. A szokásos halmazműveletekből azonban csak néhányat definiálunk rá:
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:
Adatszerkezetek II. 2. előadás
Adatszerkezetek II. 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra
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
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat
Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat Ha a feladat értelmezésével kapcsolatban probléma merül fel a vizsgán, meg kell kérdezni a vizsgáztató tanárt a megoldás megkezdés eltt. A feladatokat
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
Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.
Bevezetés 1. Definíció. Az alsó egészrész függvény minden valós számhoz egy egész számot rendel hozzá, éppen azt, amely a tőle nem nagyobb egészek közül a legnagyobb. Az alsó egészrész függvény jele:,
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
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
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
értékel függvény: rátermettségi függvény (tness function)
Genetikus algoritmusok globális optimalizálás sok lehetséges megoldás közül keressük a legjobbat értékel függvény: rátermettségi függvény (tness function) populáció kiválasztjuk a legrátermettebb egyedeket
II. év. Adatbázisok és számítógépek programozása
II. év Adatbázisok és számítógépek programozása A programozási ismeretek alapfogalmai a) algoritmus b) kódolás c) program a) algoritmus: elemi lépések sorozata, amely a következı tulajdonságokkal rendelkezik:
Bonyolultságelmélet. Monday 26 th September, 2016, 18:50
Bonyolultságelmélet Monday 26 th September, 2016, 18:50 A kiszámítás modelljei 2 De milyen architektúrán polinom? A kiszámításnak számos (matematikai) modellje létezik: Általános rekurzív függvények λ-kalkulus
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
Az optimális megoldást adó algoritmusok
Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.
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
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
Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák
Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Gelle Kitti 2017. 10. 25. Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák 2017. 10. 25. 1 / 20 Hasítótáblák T 0 h(k 2)
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
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
Feladat. Ternáris fa. Típusspecikáció. Reprezentáció. Absztrakt implementáció. Érdi Gerg EAF II. 4/3.
Feladat djuk meg, hogy egy ternáris fa INORDER bejárás szerint sorozatba f zött értékei között mekkora a leghosszabb csupa pozitív számot tartalmazó részsorozat. Ternáris fa Típusspecikáció z alaphalmaz
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
Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális
Elmaradó óra A jövő heti, november 0-dikei óra elmarad. 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)
Deníciók és tételek a beugró vizsgára
Deníciók és tételek a beugró vizsgára (a szóbeli viszgázás jogáért) Utolsó módosítás: 2008. december 2. 2 Bevezetés Számítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést,
Kupac adatszerkezet. 1. ábra.
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
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
Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17
Gráfok 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra bejárása nem
21. Adatszerkezetek Az adattípus absztrakciós szintjei Absztrakt adattípus (ADT) Absztrakt adatszerkezet (ADS) Egyszerű adattípusok Tömbök
2. Adatszerkezetek Az adattípus absztrakciós szintjei http://people.inf.elte.hu/fekete/docs_/adt_ads.pdf Absztrakt adattípus (ADT) Az adattípust úgy specifikáljuk, hogy szerkezetére, reprezentálására,
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ő.
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á