Leszámláló rendezés. 1. Végigmegyünk az A-n, és ha egy elem értéke i, akkor megnöveljük C[i] értékét eggyel.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Leszámláló rendezés. 1. Végigmegyünk az A-n, és ha egy elem értéke i, akkor megnöveljük C[i] értékét eggyel."

Átírás

1 13. előadás

2 Leszámláló rendezés Tegyük fel, hogy van n db bemeneti elem, s ezek mindegyike 1 és k közötti egész szám. Az alapötlet: meghatározzuk minden egyes x bemeneti elemre azoknak az elemeknek a számát, amelyek kisebbek, mint az x. Ezután x-et közvetlenül a saját pozíciójára tudom helyezni. Legyen a bemenet az A[1..n] tömb, a kimenet a B[1..n] tömb. Mindkettő hossza: hossz[a]=hossz[b]=n Szükség van még egy C[1..k] tömbre átmeneti munkaterületként.

3 Leszámláló rendezés 1. Végigmegyünk az A-n, és ha egy elem értéke i, akkor megnöveljük C[i] értékét eggyel. 2. Minden i-re 1..k között meghatározzuk, hogy hány olyan bemeneti elem van, amelyiknek az értéke i (összegzés C-n) 3. Minden j-re n..1 között A[j]-t betesszük B megfelelő pozíciójába - ezt a C-ből állapítjuk meg. Ha betettük, akkor a C[A[j]] értékét csökkentjük, így a következő vele egyenlő elem már elé kerül, vagyis így stabil lesz a rendezés, az egyenlő elemeknél megtartja az eredeti sorrendet.

4 Leszámláló rendezés A tömb C tömb C-ben az i-vel = elemek száma 1. Végigmegyünk az A-n, és ha egy elem értéke i, akkor megnöveljük C[i] értékét eggyel.

5 Leszámláló rendezés A tömb C tömb C-ben az i-nél elemek száma 2. Minden i-re 1...k között meghatározzuk, hogy hány olyan bemeneti elem van, amelyiknek az értéke i (összegzés C-n)

6 Leszámláló rendezés A tömb C tömb B tömb 3. Minden j-re n...1 között A[j]-t betesszük B megfelelő pozíciójába - ezt a C-ből állapítjuk meg.

7 Leszámláló rendezés A tömb C tömb 1 B tömb

8 Leszámláló rendezés A tömb C tömb 1 B tömb

9 Leszámláló rendezés A tömb C tömb 1 3 B tömb

10 Leszámláló rendezés A tömb a végén: B tömb

11 Leszámláló rendezés Az algoritmus pszeudokódja: for i 1 to k do C[i] 0 for j 1 to hossz(a) do C[A[j]] C[A[j]] + 1 for i 2 to k do C[i] C [i] + C[i-1] for j hossz(a) downto 1 do B[C[A[j]]] A[j] C[A[j]] C[A[j]] - 1 C-ben az i-vel = elemek száma C-ben az i-nél elemek száma

12 Leszámláló rendezés Futási idő: 1. for ciklus: (k) 2. for ciklus: (n) 3. for ciklus: (k). for ciklus: (n) Így a teljes időigény: (k+n). Ha k = (n), akkor a rendezés futási ideje (n)! Ez ui. nem összehasonlító rendezés. A helyigénye viszont nagyobb

13 Batcher-féle rendezés Batcher-féle páros-páratlan összefésüléses rendezés Jelentősége: ez a MergeSort olyan változata, amelyben a lépések jelentős része párhuzamosan végezhető el. Ha párhuzamos processzorokon hajtanánk végre, akkor azt tapasztalnánk, hogy ((log 2 n) 2 ) idő alatt futna le, szemben a MergeSort (n * log 2 n) idejével.

14 Összefuttatásos rendezés MergeSort(S) S hossza 1? Szétvág(S, S1,S2) SKIP MergeSort(S1) MergeSort(S2) Összefuttat(S1, S2, S)

15 Összefuttatásos rendezés tömbre külső hívás: MergeSort(A,1,n) MergeSort(A, k, v) k v? h (k+v)/2 SKIP MergeSort(A, k, h) MergeSort(A, h+1, v) Összefuttat(A[k..h], A[h+1..v], A[k..v]) kell egy segédtömb is itt

16 Mergesort Hatékonyságelemzés: Műveletigény: ha n a két sorozat együttes hossza: MÖ összefuttat (n)= n-1 MÖMS(n) (n-1)* log 2 n = (n log 2 n)

17 Mergesort A[1..k] B[1..m] C[1..k+m]

18 Mergesort A= a 1 < a 2 < < a k B = b 1 < b 2 < < b m C = c 1 < c 2 < < c m+k

19 Batcher-féle Ez lesz a PP_Merge. Egy tömb(részlet) két rendezett feléből összefésüléssel előállítja a tömb(részlet) rendezett tartalmát. Ez is rekurzív eljárás, csak kicsit másképp.

20 Batcher-féle rendezés az új összefésülés: 1. A páratlan és B páros elemeit fésüli össze U-ba 2. A páros és B páratlan elemeit fésüli össze V-be A= a 1 < a 3 < a 5 <. B = b 2 < b < b 6 <. U = u 1 < u 2 < u 3 < A= a 2 < a < a 6 <. B = b 1 < b 3 < b 5 <. V = v 1 < v 2 < v 3 <. Tegyük fel, hogy k = m vagy k = m+1

21 Batcher-féle rendezés 3. Az U és V sorozatokat nem kell összefésülni, hanem elég csak az egymás alatti u i,v i párokat 1-1 összehasonlítással a helyes sorrendbe rakni, és így {u 1,v 1 }, {u 2,v 2 }, { u 3,v 3 },..-ból kialakul a helyes sorrend. (Ez be fogjuk látni.) Párhuzamosítás: 1. és 2. párhuzamosan végezhető.

22 Batcher-féle rendezés példa A: B: csapat - A páratlan, B páros: A: B: U:

23 Batcher-féle rendezés A: B: csapat - A páros, B páratlan: A: B: V:

24 Batcher-féle rendezés {u 1,v 1 }, {u 2,v 2 }, { u 3,v 3 } párosítás:

25 Batcher-féle rendezés Rekurzió: A 2-2 rövidebb sorozat összefésülését ugyanezzel az eljárással végezzük. Ez rekurzív hívással valósul meg. Ehhez meg kell adni a legkisebb k és m értéket, amelyre már nem hívja az eljárás önmagát: Egy 2 hosszú tömböt még szétvágunk két 1 hosszú részre és azokra meghívjuk az összefésülőt, ekkor k=1 és m=1. Egy 1 hosszú tömböt azonban már nem fésülünk össze, hanem felismerjük, hogy az már rendezett, így nulla (0) összehasonlítást igényel, ekkor k=1, m=0.

26 Batcher-féle rendezés Állítás: A PP_Merge eljárás helyes. Belátjuk, hogy a leírt eljárás azt a helyes rendezett sorozatot eredményezi, amelyet C = c 1 < c 2 < < c m+k -val jelöltünk Esetszétválasztással gondoljuk meg: c 1 = min{u 1,v 1 }, c 2 = max{u 1,v 1 } Általában, ha 1 i (k+m)/2 : c 2i-1 = min{u i,v i }, c 2i = max{u i,v i }

27 Batcher-féle rendezés Vegyük figyelembe a kiegyensúlyozott szétvágást is, azaz azt, hogy k=m vagy k=m+1 esetén (k+m)/2 =m. Ha k+m páratlan, akkor még azt is be kell látni, hogy c k+m is helyesen képződik, hiszen erre akkor a képlet nem vonatkozik. Bizonyítás: I. Belátjuk, hogy a C sorozatban bármely páros indexű tagig elmenve c 1, c 2k között ugyanannyi u i szerepel, mint v j vagyis az U és a V sorozat szinte cipzár - szerűen építi a C-t.

28 Batcher-féle rendezés A C sorozat a rendezett A és B sorozatok összefésülésével adódik. Tegyük fel, hogy A-ból az a 1, a s elemek, B-ből a b 1, b 2k-s elemek jönnek összefésüléssel a C sorozat első 2k elemébe: {c 1, c 2k } = {a 1, a s } { b 1, b 2k-s }

29 Batcher-féle rendezés {c 1, c 2k } = {a 1, a s } { b 1, b 2k-s } U-ba kerülnek a páratlan indexű elemek, ezek száma: s/2 V-be kerülnek a páros indexű elemek, ezek száma: s/2 U-ba kerülnek a páros indexű elemek, ezek száma: (2ks)/2 V-be kerülnek a páratlan indexű elemek, ezek száma: (2k-s)/2

30 Batcher-féle rendezés Az állítás ekkor egyenértékű azzal, hogy: s/2 + (2k-s)/2 = s/2 + (2k-s)/2? Ez nyilván igaz, ha s páros, hiszen ekkor minden tag egész. ha s páratlan, akkor a kérdés: (s+1)/2 +(2k-(s+1))/2 = (s-1) /2 + (2k-(s-1))/2 egyenlősége, és ez tényleg igaz.

31 Batcher-féle rendezés II. Eszerint: {c 1, c 2i } = {u 1, u i } { v 1, v i } {c 1, c 2(i-1) } = {u 1, u i-1 } { v 1, v i-1 } A két halmaz kivonásával: {c 2i-1, c 2i }={u i, v i } Így, mivel c 2i-1 < c 2i, tehát az eredeti állítás fennáll. U és V már egy párhuzamos lépésben összefésülhető.

32 Batcher-féle rendezés Hatékonyságelemzés: Párhuzamos költséget számolunk, ez azt jelenti, hogy akárhány összehasonlítás is csak 1-nek számít, ha párhuzamosan végezzük! 1. A PP_Merge rekurzív eljárást egy n méretű, két (közel) egyenlő méretű, rendezett két félből álló tömbre hajtjuk végre. n A B n/2 n/2

33 Batcher-féle rendezés A két félből párhuzamosan lehet képezni az U és V sorozatokat, itt tehát n/2 -t vesszük alapul. Mivel ugyanezt az eljárást használjuk az U és V előállítására is, ez a költségszámítás képletében is rekurziót ad. Továbbá, az U és V tömbökből egyetlen párhuzamos összehasonlítással kapjuk a C eredményt. Így az egyenlet: MÖ PP_M (n) MÖ PP_M ( n/2 ) +1 Itt egyébként elegendő MÖ helyett Ö-t írni, mert ez az eljárás fix összehasonlítás számmal dolgozik. Szokásos jelölés még: T (n) T( n/2 ) +1, T(1) = 0

34 Batcher-féle rendezés Ennek megoldása úgy történik általánosan is, ahogy egy konkrét értékre: például n = 21-re: T(21) T(11) + 1 T(6) T(3) T(2) T(1) = = = 5 = log 2 21 T(21) log 2 21 Ha v olyan egész, amire 2 v < n 2 v+1, akkor a rekurzív egyenletet éppen v +1-szer alkalmazzuk, mire eljutunk T(1)-ig. Így v +1 db egyest adunk össze, vagyis T(n) log 2 n Ez tehát a párhuzamos összefésülés költsége.

35 Batcher-féle rendezés 2. A párhuzamos rendező eljárás szerkezete pontosan az, ami a bevezetőben felidézett MergeSort-é, csak más összefuttatást alkalmaz.

36 Batcher-féle rendezés - tömbökre külső hívás: BatcherSort(S,1,n) BatcherSort(S, p, q) p q? r (p+q)/2 SKIP BatcherSort(S, p, r) BatcherSort(S, r+1, q) PP_Merge(S[p..r], S[r+1..q], S[p..q])

37 Batcher-féle rendezés 2. A párhuzamos összehasonlítás számra az egyenlet: Ö Batcher (n) Ö Batcher ( n/2 ) + log 2 n Egyszerűbb jelöléssel: T(n) T( n/2 ) + log 2 n Ha ezt is kifejtjük, akkor az előzőhöz hasonlóan azt kapjuk, hogy log 2 n számú tag lesz; ezek a tagok azonban csökkennek: T(n) T( n/2 ) + log 2 n T( n/2 2 ) + log 2 ( n/2 ) + log 2 n T(1) ( log 2 n -1) + log 2 n = (( log 2 n +1) * log 2 n )/2 (log 2 n) 2 /2 = ((log 2 n) 2 )

38 Batcher-féle rendezés Az előzőekben felhasználtuk, hogy log 2 ( n/2 ) = log 2 n -1, ezt be is látjuk: Ha n= 2 p, akkor igaz. Ha 2 p < n 2 p+1, akkor 2 p-1 < n/2 2 p, 2 p-1 < n/2 2 p p-1 < log 2 n/2 p, így log 2 ( n/2 ) = log 2 n -1

39 Külső rendezések Az eddig látott rendezéseknél feltettük, hogy az adatok a központi memóriában vannak. Ennek megfelelt, hogy a hatékonyságot az összehasonlítások számában mértük. Ha az adatok háttértárban vannak, akkor a futási idő döntő részét az I/O utasítások teszik ki. (Az I/O egysége az 1 blokk, ami k x 512 byte valamely kis k- val, pl. 102 v. 208 byte. Ezt lapnak is nevezik.) A háttértár lehet szalag v. lemez (ennek különféle változatai). A hatékonyságot a szükséges blokk I/O-k számában mérjük. Külső rendezésre igazából csak az összefésüléses rendezés (MergeSort) alkalmas.

40 Külső rendezések Az összefésüléses rendezés külső tárakon Adott egy S szekvenciális input fájl, amely n blokkból áll, minden blokkban adott számú rekorddal. ( Pl. 1 blokk = 102 byte és ezen 3 rekord foglal helyet.) A blokkok tartalma rendezetlen. Az összefésülést iteratív módon végezzük, úgy, hogy az egyes menetek végén egyre nagyobb darabok, vagyis egyre több szomszédos blokk lesz rendezett. Az összefésülést menetenként váltakozva az A, B, illetve a C,D fájlokba végezzük, végül a teljesen rendezett eredményt S-be írjuk. A közbülső menetekben azért lesz 2 output fájl, mert az összefuttatás eredményét az egyet ide, egyet oda elv alapján írjuk ki.

41 Külső rendezések 1.menet: beolvassuk S rendezetlen blokkjait, valamilyen belső rendezővel rendezzük, majd kiírjuk felváltva A-ba, illetve B-be. Itt még nem volt összefésülés.

42 Külső rendezések S: rendezetlen blokkok b1 b2 b3 b b5 b6 b7 b8 b9 Rendezés központi memória A b1 B rendezett blokkok

43 Külső rendezések S: rendezetlen blokkok b1 b2 b3 b b5 b6 b7 b8 b9 Rendezés központi memória A B b1 b2 rendezett blokkok

44 Külső rendezések S: rendezetlen blokkok b1 b2 b3 b b5 b6 b7 b8 b9 Rendezés központi memória A B b1 b3 b5 b7 b9 b2 b b6 b8 rendezett blokkok

45 Külső rendezések 2.menet: Sorban beolvassuk A és B 1-1 blokkját. Ezek rendezettek. Összefésüljük őket és a rendezett két blokkot felváltva C-be, illetve D-be írjuk. Az A utolsó blokkjának nincs párja, így azt kiírjuk C- be. A C és D fájlban a rendezett részek hossza 2 blokk, illetve a maradék esetében 1 blokk.

46 A Külső rendezések rendezett: 1 blokk B b1 b3 b5 b7 b9 b2 b b6 b8 összefuttatás központi memória C D b1- -b2 rendezett: 2 blokk

47 A Külső rendezések rendezett: 1 blokk B b1 b3 b5 b7 b9 b2 b b6 b8 összefuttatás központi memória C D b3- b1- -b2 -b rendezett: 2 blokk

48 A Külső rendezések rendezett: 1 blokk B b1 b3 b5 b7 b9 b2 b b6 b8 összefuttatás központi memória C D b5- b1- -b2 b3- -b6 b9 b7- -b -b8 rendezett: 2 blokk

49 3. menet: C-ből és D-ből olvasunk 2-2 rendezett blokkot, összefésüljük őket és felváltva A-ba és B-be írjuk a rendezett blokkot. A C-beli utolsó töredék blokk változatlanul A végére kerül.

50 A Külső rendezések rendezett: blokk B b2- b1- b3- -b összefuttatás központi memória C D b5- b1- -b2 b3- -b6 b9 b7- -b -b8 rendezett: 2 blokk

51 A Külső rendezések rendezett: blokk B b2- b1- b3- b5- -b b6- b7- -b8 összefuttatás központi memória C D b5- b1- -b2 b3- -b6 b9 b7- -b -b8 rendezett: 2 blokk

52 A Külső rendezések rendezett: blokk B b2- b1- b3- b5- -b b9 b6- b7- -b8 összefuttatás központi memória C D b5- b1- -b2 b3- -b6 b9 b7- -b -b8 rendezett: 2 blokk

53 Külső rendezések. menet: C-be kerül A és B - rendezett blokkja összefésülésének a 8 blokk hosszú rendezett eredménye, D-be pedig a maradék egy blokk.

54 A Külső rendezések rendezett: blokk B b2- b1- b3- b5- -b -b9 b6- b7- -b8 összefuttatás központi memória C D b2- b1- b3- b- b5- b6- b7- -b8 b9 rendezett: 8

55 Külső rendezések 5. menet: C 8 blokkját és D 1 blokkját összefésüljük S- be. Elnevezés: egy k blokkból álló összefüggő rendezett részt k hosszú futam nak nevezünk.

56 Külső rendezések S rendezett b2- b1- b3- b- b5- b6- b7- b8- -b9 összefuttatás központi memória C D b2- b1- b3- b- b5- b6- b7- -b8 b9 rendezett: 8 blokk

57 Külső rendezések Két kiegészítő megjegyzés: 1. Ebben a példában az S 9. blokkja csaknem végig nem került kapcsolatba más rendezett részekkel, csak az utolsó menetben került összefésülésre. Ha végrehajtjuk a fenti eljárást n=15-re, akkor a páratlan töredék maradék rész mérete így alakul: 1, 3, 7, vagyis a fenti jelenség nem törvényszerű. 2. Ha a központi memória mérete korlátozott és nem képes befogadni az egyre növekvő méretű rendezett részeket (futamokat), akkor ezek összefésülését lehet pufferelve, akár blokkonként végezni. Ez azért lehetséges, mert az összefuttatás egysége a rekord.

58 Külső rendezések Általában: 1. menet eredménye: 2. menet eredménye: 3. menet eredménye:. 1 hosszú futamok 2 hosszú futamok hosszú futamok (k-1). menet eredménye: 2 (k-2) hosszú futamok k. (utolsó) menet eredménye: 2 (k-1) hosszú egyetlen futam = S (előtte maradék mindig lehet)

59 Külső rendezések Az utolsó előtti (k-1). menetben még volt 2 futam: 2 (k-2) < n A k. (utolsó) menetben már előáll a teljes rendezett fájl: n 2 (k-1) Áttérve logaritmusra: k-2 < log 2 n k-1 k-1 = log 2 n A menetek k száma: k = log 2 n +1 Az összes blokk-i/o száma: 2*n*( log 2 n + 1) (minden menetben beolvastuk és kiírtuk mind az n blokkot)

60 Külső rendezések Gyorsítási lehetőségek: Nagyobb kezdő futamok létrehozása ha a központi memória lehetővé teszi, akkor az 1. menetben megtehetjük, hogy S-ből m >1 blokkot olvasunk be, ezt rendezzük és az így keletkezett m hosszú kezdőfutamokat írjuk ki A-ba és B-be. Ezután úgy megy tovább, hogy először két m hosszú futamot fésülünk össze, majd két 2m hosszút, stb.

61 Külső rendezések 1. menet eredménye: m hosszú futamok 2. menet eredménye: 2*m hosszú futamok 3. menet eredménye: *m hosszú futamok. (k-1). menet eredménye: 2 (k-2) *m hosszú futamok k. (utolsó) menet eredménye: 2 (k-1) *m hosszú egyetlen futam = S Innen: 2 (k-2) *m < n 2 (k-1) *m A menetek k száma: k = log 2 (n/m) +1 Az összes blokk-i/o száma: 2*n*( log 2 (n/m) + 1)

62 Külső rendezések Több, mint kétfelé fésülünk: Ha az S fájl mellett nem 2 x 2, hanem általában 2 x m fájllal dolgozunk, akkor ezzel a ráfordítással hatékonyabb eljárás nyerhető. Legyen pl. m= 3, n=13 és térjünk vissza az 1 hosszú kezdő futamokhoz: Ekkor az 1. menetben felváltva A, B, C-be írjuk ki a rendezett kezdőfutamokat. Ezután mindig három futamot fésülünk össze (a maradékoktól eltekintve) és az új futamokat felváltva A, B, C-be ill. D, E, F-be írjuk ki. Az utolsó menetben S-be írjuk az eredményt.

63 Külső rendezések S-ben n= 13 A B C D E F S 1. menet 1,1,1,1,1 1,1,1,1 1,1,1,1 2. menet 3,3, 3,1, 3 3.menet 9. menet 13

64 Külső rendezések A számolás: 1. menet eredménye: 1 hosszú futamok 2. menet eredménye: m hosszú futamok.. (k-1)-edik menet eredménye: k-adik utolsó menet eredménye: Innen: m k-2 < n m k-1 n m k-2 hosszú futamok m k-1 hosszú egyetlen futam=s k= log m n + 1= log 2 n/ log 2 m +1 Az összes blokk I/O művelet: 2n * ( log 2 n/ log 2 m +1)

65 Külső rendezések Három fájlos külső rendező Érdekes algoritmushoz jutunk, ha az m-felé fésülésnél nem 2m db fájl-t használunk, hanem csak m+1 db-t. Ezt m=2 esetére nézzük meg, ami az eredeti eset. Ekkor tehát 3 fájl-t használunk, mondjuk A, B, C-t. Az 1. menetben szétosztjuk S immár rendezett blokkjait A- ba és B-be. A második menetben elkezdjük A és B blokkjainak az összefésülését, de most csak 1 fájl tudja fogadni az eredményt, a C fájl. Ezért C-be fésülünk össze egészen addig, amíg A és B egyike ki nem ürül. Ekkor új menetet kezdünk a két nem üres fájllal s.i.t.

66 Külső rendezések Példa: S n=13 blokk A táblázatban az első szám a futamok számát jelenti, zárójelben pedig a futamok hossza áll A 7(1) 1(1) 0 1(5) 0 1(9) 0 1(13)=S B 6(1) 0 1(3) 0 1(7) 0 1(11) 0 C 6(2) 5(2) (2) 3(2) 2(2) 1(2) 0 Látjuk, hogy a második menet végén képződött 6 db 2 hosszú futam csak egyesével tud elfogyni érezhetően sok lépésben. Ennek oka az, hogy az 1. menet végi két futamszámnak 1 a különbsége: 7-6=1

67 Külső rendezések Eszünkbe jut a Fibonacci sorozat: 0,1,1,2,3,5,8,13,. Ahol két szomszédos elem különbsége az első néhány tag kivételével 1-től különböző. Innen jön a gondolat, hogy az első menetben írjunk annyi futamot A-ba és B-be, mint a Fibonacci sorozat két (alkalmas) szomszédos eleme, és lépkedjünk visszafelé a sorozaton az egyes menetekben A 8(1) 3(1) 0 2(5) 1(5) 0 B 5(1) 0 3(3) 1(3) 0 1(13)=S C 5(2) 2(2) 0 1(8) 0

68 Külső rendezések Belátható, hogy a 3 fájlos rendező éppen akkor fut le leggyorsabban, ha így járunk el, azaz A-ban és B-ben két szomszédos Fibonacci számnak megfelelő számú kezdő futamot hozunk létre. Ha N nem Fibonacci szám, akkor vagy levágjuk és félretesszük a felesleget, és a végén még összefésüljük a kialakult eredménnyel, vagy pedig éppen fordítva: (virtuális) kiegészítéssel alkalmasan megnöveljük az input állomány méretét.

69 Külső rendezések Nézzük meg, hány lépésben érjük el F k és F k-1 -ből az 1, 0 számokat úgy, hogy minden menetben egy újabb számot tudunk lefelé lépni: (k-1). k. S F k+1 F k F k F k-1 F k Látható, hogy a menetek száma ekkor k, hiszen F k -től F 1 -ig vezet az út a táblázatban. Ki kell fejezni n-et F k+1 -gyel, ami az input fájl (közelítő) mérete blokkokban. Jelöljük N:=F k+1

70 Külső rendezések N:=F k+1 F 0 = 0, F 1 = 1, (F 2 = 1, F 3 = 2, F = 3, ) F k+1 = F k + F k-1 (k 1) F k = 1/ 5 * [((1+ 5)/2) k ((1-5)/2) k ] F k 1/ 5 * ((1+ 5)/2) k 1,6180-0,6180 Az A= (1+ 5)/2 az aranymetszés aránya, amely kielégíti az A 2 -A-1=0 egyenletet. Ezt átrendezve: A 2 =A+1, amiből teljes indukcióval megmutatható, hogy k 2 esetén: A k-2 F k A k-1 Ha N=F k+1, akkor A k-1 N, k-1 log A N = log 2 N/ log 2 A 1, * log 2 N k 1, * log 2 N +1

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. 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

Részletesebben

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

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),

Részletesebben

Algoritmuselmélet 2. előadás

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

Részletesebben

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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:

Részletesebben

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 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

Részletesebben

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1. Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok

Részletesebben

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

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,

Részletesebben

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató Oktatási Hivatal 04/0 tanévi Országos Középiskolai Tanulmányi Verseny első forduló MTEMTIK I KTEGÓRI (SZKKÖZÉPISKOL) Javítási-értékelési útmutató Határozza meg a tízes számrendszerbeli x = abba és y =

Részletesebben

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Sorozatok I. DEFINÍCIÓ: (Számsorozat) A számsorozat olyan függvény, amelynek értelmezési tartománya a pozitív egész számok halmaza, értékkészlete a valós számok egy részhalmaza. Jelölés: (a n ), {a n }.

Részletesebben

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

Részletesebben

Diszkrét matematika 2. estis képzés

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 7. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6.

7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6. 7. előadás, rendezés lineáris lépésszámmal Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 7.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen,

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb

Részletesebben

Egészrészes feladatok

Egészrészes feladatok Kitűzött feladatok Egészrészes feladatok Győry Ákos Miskolc, Földes Ferenc Gimnázium 1. feladat. Oldjuk meg a valós számok halmazán a { } 3x 1 x+1 7 egyenletet!. feladat. Bizonyítsuk be, hogy tetszőleges

Részletesebben

I. Egyenlet fogalma, algebrai megoldása

I. Egyenlet fogalma, algebrai megoldása 11 modul: EGYENLETEK, EGYENLŐTLENSÉGEK MEGOLDÁSA 6 I Egyenlet fogalma, algebrai megoldása Módszertani megjegyzés: Az egyenletek alaphalmazát, értelmezési tartományát később vezetjük be, a törtes egyenletekkel

Részletesebben

1.1. Alapfeladatok. hogy F 1 = 1, F 2 = 1 és általában F n+2 = F n+1 + F n (mert a jobboldali ág egy szinttel lennebb van, mint a baloldali).

1.1. Alapfeladatok. hogy F 1 = 1, F 2 = 1 és általában F n+2 = F n+1 + F n (mert a jobboldali ág egy szinttel lennebb van, mint a baloldali). 1.1. Alapfeladatok 1.1.1. Megoldás. Jelöljük F n -el az n-ed rendű nagyapák számát. Az ábra alapján látható, hogy F 1 = 1, F = 1 és általában F n+ = F n+1 + F n mert a jobboldali ág egy szinttel lennebb

Részletesebben

Felvételi tematika INFORMATIKA

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.

Részletesebben

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 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,

Részletesebben

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: 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,

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2015. tavasz 1. Diszkrét matematika 2.C szakirány 1. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu Komputeralgebra Tanszék 2015. tavasz Gráfelmélet Diszkrét

Részletesebben

Algoritmuselmélet 12. előadás

Algoritmuselmélet 12. előadás Algoritmuselmélet 12. 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 Április 9. ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek

Részletesebben

Informatikai tehetséggondozás:

Informatikai tehetséggondozás: Ég és Föld vonzásában a természet titkai Informatikai tehetséggondozás: Rendezések TÁMOP-4.2.3.-12/1/KONV-2012-0018 Az alapfeladat egy N elemű sorozat nagyság szerinti sorba rendezése. A sorozat elemei

Részletesebben

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek Adatbázis és szoftverfejlesztés elmélet Témakör 8. 1. Egy sorozathoz egy érték hozzárendelése Az összegzés tétele Összefoglalás Programozási tételek Adott egy számsorozat. Számoljuk és írassuk ki az elemek

Részletesebben

Diszkrét matematika 1. estis képzés

Diszkrét matematika 1. estis képzés Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján

Részletesebben

FPI matek szakkör 8. évf. 4. szakkör órai feladatok megoldásokkal. 4. szakkör, október. 20. Az órai feladatok megoldása

FPI matek szakkör 8. évf. 4. szakkör órai feladatok megoldásokkal. 4. szakkör, október. 20. Az órai feladatok megoldása 4. szakkör, 2004. október. 20. Az órai feladatok megoldása Most csak három önmagában nem nehéz feladatot kapsz, és a feladatot magadnak kell általánosítani, szisztematikusan adatot gyűjteni, általános

Részletesebben

Arany Dániel Matematikai Tanulóverseny 2014/2015-ös tanév első (iskolai) forduló Haladók II. kategória

Arany Dániel Matematikai Tanulóverseny 2014/2015-ös tanév első (iskolai) forduló Haladók II. kategória Bolyai János Matematikai Társulat Arany Dániel Matematikai Tanulóverseny 01/01-ös tanév első iskolai) forduló Haladók II. kategória Megoldások és javítási útmutató 1. Adott az alábbi két egyenletrendszer:

Részletesebben

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 2. A VALÓS SZÁMOK 2.1 A valós számok aximómarendszere Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 1.Testaxiómák R-ben két művelet van értelmezve, az

Részletesebben

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Programozási módszertan. Függvények rekurzív megadása Oszd meg és uralkodj elv, helyettesítő módszer, rekurziós fa módszer, mester módszer PM-03 p. 1/13 Programozási módszertan Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer Werner Ágnes Villamosmérnöki és Információs Rendszerek

Részletesebben

Arany Dániel Matematikai Tanulóverseny 2008/2009-es tanév első (iskolai) forduló haladók II. kategória

Arany Dániel Matematikai Tanulóverseny 2008/2009-es tanév első (iskolai) forduló haladók II. kategória Bolyai János Matematikai Társulat Oktatási és Kulturális Minisztérium Támogatáskezelő Igazgatósága támogatásával Arany Dániel Matematikai Tanulóverseny 00/009-es tanév első (iskolai) forduló haladók II.

Részletesebben

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 8. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Elemi számelmélet Diszkrét matematika I. középszint

Részletesebben

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Hadamard-mátrixok Előadó: Hajnal Péter február 23. Szimmetrikus kombinatorikus struktúrák MSc hallgatók számára Hadamard-mátrixok Előadó: Hajnal Péter 2012. február 23. 1. Hadamard-mátrixok Ezen az előadáson látásra a blokkrendszerektől független kombinatorikus

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

2018, Diszkrét matematika

2018, Diszkrét matematika Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes

Részletesebben

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) 1. (5p) Tekintsük a következő alprogramot: Alprogram f(a): Ha a!= 0, akkor visszatérít: a + f(a - 1) különben visszatérít

Részletesebben

Gyakorló feladatok ZH-ra

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

Részletesebben

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk. Osztók és többszörösök 1783. A megadott számok elsõ tíz többszöröse: 3: 3 6 9 12 15 18 21 24 27 30 4: 4 8 12 16 20 24 28 32 36 40 5: 5 10 15 20 25 30 35 40 45 50 6: 6 12 18 24 30 36 42 48 54 60 1784. :

Részletesebben

INFORMATIKA javítókulcs 2016

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.

Részletesebben

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

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

Részletesebben

Magasabbfokú egyenletek

Magasabbfokú egyenletek 86 Magasabbfokú egyenletek Magasabbfokú egyenletek 5 90 a) =! ; b) =! ; c) = 5, 9 a) Legyen = y Új egyenletünk: y - 5y+ = 0 Ennek gyökei: y=, y= Tehát egyenletünk gyökei:, =!,, =! b) Új egyenletünk: y

Részletesebben

Rekurzív algoritmusok

Rekurzív algoritmusok Rekurzív algoritmusok 11. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. november 14. Sergyán (OE NIK) AAO 11 2011. november 14. 1 / 32 Rekurzív

Részletesebben

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

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

Részletesebben

Programozási tételek. Dr. Iványi Péter

Programozási tételek. Dr. Iványi Péter Programozási tételek Dr. Iványi Péter 1 Programozási tételek A programozási tételek olyan általános algoritmusok, melyekkel programozás során gyakran találkozunk. Az algoritmusok általában számsorozatokkal,

Részletesebben

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az

Részletesebben

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged Magas szintű matematikai tehetséggondozás Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged Ahhoz, hogy egy diák kimagasló eredményeket érhessen el matematika versenyeken, elengedhetetlenül

Részletesebben

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24. Rendezések 8. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. október 24. Sergyán (OE NIK) AAO 08 2011. október 24. 1 / 1 Felhasznált irodalom

Részletesebben

Trigonometria Megoldások. 1) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( )

Trigonometria Megoldások. 1) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( ) Trigonometria Megoldások Trigonometria - megoldások ) Igazolja, hogy ha egy háromszög szögeire érvényes az alábbi összefüggés: sin : sin = cos + : cos +, ( ) ( ) akkor a háromszög egyenlő szárú vagy derékszögű!

Részletesebben

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória Oktatási Hivatal A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai 1. feladat: Repülők (20 pont) INFORMATIKA II. (programozás) kategória Ismerünk városok közötti repülőjáratokat.

Részletesebben

Összetett programozási tételek

Összetett programozási tételek Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember

Részletesebben

15. A VERSENYRENDEZÉS

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

Részletesebben

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm 5 Nevezetes egyenlôtlenségek a b 775 Legyenek a befogók: a, b Ekkor 9 + $ ab A maimális ab terület 0, 5cm, az átfogó hossza 8 cm a b a b 776 + # +, azaz a + b $ 88, tehát a keresett minimális érték: 88

Részletesebben

Matematika. 1. osztály. 2. osztály

Matematika. 1. osztály. 2. osztály Matematika 1. osztály - képes halmazokat összehasonlítani az elemek száma szerint, halmazt alkotni; - képes állítások igazságtartalmának eldöntésére, állításokat megfogalmazni; - halmazok elemeit összehasonlítja,

Részletesebben

Rendezések. Összehasonlító rendezések

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

Részletesebben

10. Szimultán kiválasztások

10. Szimultán kiválasztások 10. Szimultán kiválasztások Ebben a fejezetben két újabb alsókorlát-elemzés következik. Mindkettőben egy szimultán algoritmus műveletigényére adunk alsó korlátot. Pontosabban, egy-egy feladat megoldásához

Részletesebben

Legkönnyebb és legnehezebb Rendezési algoritmusok

Legkönnyebb és legnehezebb Rendezési algoritmusok 7. foglalkozás Legkönnyebb és legnehezebb Rendezési algoritmusok Tartalom A számítógépeket gyakran használják arra, hogy listákat valamiféle rendbe rakjanak, például neveket ábécé szerint, találkozókat

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az

Részletesebben

Programozás II. előadás

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

Részletesebben

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont Oktatási Hivatal Öt pozitív egész szám egy számtani sorozat első öt eleme A sorozatnak a különbsége prímszám Tudjuk hogy az első négy szám köbének összege megegyezik az ezen öt tag közül vett páros sorszámú

Részletesebben

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. 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)

Részletesebben

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták) A 205/206. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA a speciális tanterv szerint haladó gimnazisták Javítási-értékelési útmutató. feladat Az {,2,...,n} halmaz

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása Oktatási Hivatal Országos Középiskolai Tanulmányi Verseny / Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása. Oldja meg a valós számok legbővebb részhalmazán a egyenlőtlenséget!

Részletesebben

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek 3. Előadás Megyesi László: Lineáris algebra, 47. 50. oldal. Gondolkodnivalók Determinánsok 1. Gondolkodnivaló Determinánselméleti tételek segítségével határozzuk meg a következő n n-es determinánst: 1

Részletesebben

Számításelmélet. Második előadás

Számításelmélet. Második előadás Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi

Részletesebben

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott

Részletesebben

2014. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 11. évfolyam

2014. évi Bolyai János Megyei Matematikaverseny MEGOLDÁSI ÉS ÉRTÉKELÉSI ÚTMUTATÓ 11. évfolyam 01. évi Bolyai János Megyei Matematikaverseny A közölt megoldási utak a feladatoknak nem az egyetlen helyes megoldási módját adják meg, több eltérő megoldás is lehetséges. Az útmutatótól eltérő megoldásokat

Részletesebben

A szimplex algoritmus

A szimplex algoritmus . gyakorlat A szimplex algoritmus Az előző órán bevezetett feladat optimális megoldását fogjuk megvizsgálni. Ehhez új fogalmakat, és egy algoritmust tanulunk meg. Hogy az algoritmust alkalmazni tudjuk,

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek

Részletesebben

8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete 8. Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus gyakran olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Sok optimalizálási probléma esetén

Részletesebben

8. Egyenletek, egyenlőtlenségek, egyenletrendszerek II.

8. Egyenletek, egyenlőtlenségek, egyenletrendszerek II. 8 Egyenletek, egyenlőtlenségek, egyenletrendszerek II Elméleti összefoglaló Az a + b+ c, a egyenletet másodfokú egyenletnek nevezzük A D b ac kifejezést az egyenlet diszkriminánsának nevezzük Ha D >, az

Részletesebben

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória Bolyai János Matematikai Társulat Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória Megoldások és javítási útmutató 1. Az a és b befogójú derékszögű háromszögnek

Részletesebben

A 2006-2007. tanévi matematika OKTV I. kategória első (iskolai) fordulójának pontozási útmutatója

A 2006-2007. tanévi matematika OKTV I. kategória első (iskolai) fordulójának pontozási útmutatója SZAKKÖZÉPISKOLA A 006-007. tanévi matematika OKTV I. kategória első (iskolai) fordulójának pontozási útmutatója. Feladat: Egy számtani sorozat három egymást követő tagjához rendre 3-at, -et, 3-at adva

Részletesebben

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat Bevezetés a matematikába (2009. ősz) 1. röpdolgozat 1. feladat. Fogalmazza meg a következő ítélet kontrapozícióját: Ha a sorozat csökkenő és alulról korlátos, akkor konvergens. 2. feladat. Vezessük be

Részletesebben

Számláló rendezés. Példa

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

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Lekérdezések feldolgozása és optimalizálása

Lekérdezések feldolgozása és optimalizálása Lekérdezések feldolgozása és optimalizálása Definíciók Lekérdezés feldolgozása lekérdezés lefordítása alacsony szintű tevékenységekre lekérdezés kiértékelése adatok kinyerése Lekérdezés optimalizálása

Részletesebben

Szittyai István december 8. SZTE Bolyai Intézet. Szittyai István (NLG, Hmvh) Partíciók , Bolyai, Szeged 1 / 24

Szittyai István december 8. SZTE Bolyai Intézet. Szittyai István (NLG, Hmvh) Partíciók , Bolyai, Szeged 1 / 24 Hányféleképpen válthatom föl a pénzemet? Szittyai István Németh László Gimnázium, Hódmezővásárhely 2012. december 8. SZTE Bolyai Intézet Szittyai István (NLG, Hmvh) Partíciók 2012.12.08, Bolyai, Szeged

Részletesebben

A fejlesztés várt eredményei a 1. évfolyam végén

A fejlesztés várt eredményei a 1. évfolyam végén A tanuló legyen képes: A fejlesztés várt eredményei a 1. évfolyam végén - Halmazalkotásra, összehasonlításra az elemek száma szerint; - Állítások igazságtartalmának eldöntésére, állítások megfogalmazására;

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Trigonometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Általános algoritmustervezési módszerek

Általános algoritmustervezési módszerek Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás

Részletesebben

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet. 1. A polinom fogalma Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1 = x egyenletet. Megoldás x + 1-gyel átszorozva x 2 + x + 1 = x 2 + x. Innen 1 = 0. Ez ellentmondás, így az

Részletesebben

Tartalom. Programozási alapismeretek. 11. előadás

Tartalom. Programozási alapismeretek. 11. előadás Tartalom Programozási alapismeretek 11. előadás Rendezési feladat specifikáció Egyszerű cserés Minimum-kiválasztásos Buborékos Javított buborékos Beillesztéses Javított beillesztéses Szétosztó Számlálva

Részletesebben

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n). Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a

Részletesebben

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ Matematika emelt szint 0 ÉRETTSÉGI VIZSGA 00. február. MATEMATIKA EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI MINISZTÉRIUM Matematika emelt szint Fontos tudnivalók Formai

Részletesebben

XXIV. NEMZETKÖZI MAGYAR MATEMATIKAVERSENY Szabadka, április 8-12.

XXIV. NEMZETKÖZI MAGYAR MATEMATIKAVERSENY Szabadka, április 8-12. XXIV NEMZETKÖZI MAGYAR MATEMATIKAVERSENY Szabadka, 05 április 8- XII évfolyam A szabályos hatoldalú csonka gúla alapélei és ( a b ) A csonka gúla oldalfelülete megegyezik az alaplapok területének összegével

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek

Részletesebben

11. Sorozatok. I. Nulladik ZH-ban láttuk:

11. Sorozatok. I. Nulladik ZH-ban láttuk: 11. Sorozatok I. Nulladik ZH-ban láttuk: 1. Egy számtani sorozat harmadik eleme 15, a nyolcadik eleme 30. Mely n természetes számra igaz, hogy a sorozat első n elemének összege 6? A szokásos jelöléseket

Részletesebben

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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á

Részletesebben

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

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.

Részletesebben

2018, Funkcionális programozás

2018, Funkcionális programozás Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Sorozatok II.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Sorozatok II. Sorozatok II. DEFINÍCIÓ: (Mértani sorozat) Az (a n ) valós számsorozatot mértani sorozatnak nevezzük, ha van olyan valós szám, amellyel a sorozat bármely tagját megszorozva a következő tagot kapjuk. Jelöléssel:

Részletesebben

Permutációk véges halmazon (el adásvázlat, február 12.)

Permutációk véges halmazon (el adásvázlat, február 12.) Permutációk véges halmazon el adásvázlat 2008 február 12 Maróti Miklós Ennek az el adásnak a megértéséhez a következ fogalmakat kell tudni: ismétlés nélküli variáció leképezés indulási és érkezési halmaz

Részletesebben

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:

Részletesebben

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k. 10. Előadás Beszúró rendezés Használjuk a kupacokat rendezésre! Szúrd be az elemeket egy kupacba! Amíg a sor ki nem ürül, vedd ki a kupacból a maximális elemet, és tedd az eredmény (rendezett) sorba! 2

Részletesebben

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 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

Részletesebben

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2016. ősz 1. Diszkrét matematika 1. középszint 8. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben