Programoza s I. 11. elo ada s Oszd meg e s uralkodj! elvu algoritmusok. Sergya n Szabolcs

Hasonló dokumentumok
Programoza s I. 10. elo ada s Rendezett to mbo k. Sergya n Szabolcs

Programoza s I. 13. elo ada s Moho algoritmusok. Sergya n Szabolcs

Analı zis elo ada sok

PRECÍZ Információs füzetek

Speciális bútorok. Laborbútor. Oktatási bútor. Ipari bútor. Mérlegasztal. Laborszék

RAP-4 ELEKTROMECHANIKUS SOROMPÓ

PRCX PRCX. Perdületes mennyezeti befúvóelem

Informa cio k, Mo dszerek, O tletek e s Megolda sok a Precıź Integra lt U gyviteli Informa cio s rendszerhez. T31. Standolás

II. orsza gos magyar matematikaolimpia XXIX. EMMV Szatma rne meti, februa r 28. ma rcius 3. VIII. oszta ly

MESEBÁL 3.A hõs kisegér Huszti Zoltán

NÖVÉNYTERMESZTÉSTAN. Az egyes növények termesztésének a részleteivel foglalkozik

Egyszerű programozási tételek

JEGYZŐKÖNYV. Jelen vannak: Roza László István polgármester. Az ülésen nem vett részt: Fodorne Szabó Erika ke pviselő

EÖTVÖS LORÁND TUDOMÁNYEGYETEM BÁRCZI GUSZTÁV GYÓGYPEDAGÓGIAI KAR

A MAGYAR TÖRTÉNELMI TÁRSULAT KIADVÁNYAI

Hírlevél február. Fejleszte sek e s va ltoza sok a Precıź Integra lt U gyviteli Informa cio s rendszerben I.

Scherlein Márta Dr. Hajdu Sándor Köves Gabriella Novák Lászlóné MATEMATIKA 2. A FELMÉRŐ FELADATSOROK ÉRTÉKELÉSE

Összetett programozási tételek

A FŐÉPÍTÉSZI VIZSGA ELJÁRÁSRENDJE

1. Bevezetés. Szent-Györgyi Albert: Psalmus Humanus. œ œ. A-nyám? œ œ œ Œ Ó. Te al - kot - tál en-gem, vagyté-ged. œ Ó. meg-osz-szam?

A f ldm vel s gyi s vid kfejleszt si miniszter 81/2009. (VII. 10.) FVM rendelete

172. szám II. kö tet. II. rész JOGSZABÁLYOK. A Kormány tagjainak A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA

CLEAN-PRECÍZ Integrált ügyviteli rendszer. Őstermelői bevallás készítése

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, szep tem ber 12., péntek szám. Ára: 465, Ft

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Felhagyott sze nhidroge n kutak geotermikus hasznosi thato sa ga

Rekurzív algoritmusok

A vadon élő állatok természeti környezetükre gyakorolt terhelésének csökkentése az Ipoly Erdő Zrt. Börzsöny vadászterületén

P ÁRAD IFFÚ ZIÓ ÉP Ü LETFIZIKA

2008. évi CVIII. tör vény. 2008/187. szám M A G Y A R K Ö Z L Ö N Y 24697

33. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, már ci us 27., hétfõ TARTALOMJEGYZÉK. Ára: 3887, Ft

75. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, jú ni us 15., péntek TARTALOMJEGYZÉK. Ára: 2478, Ft. Oldal

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA

38. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, áp ri lis 5., szerda TARTALOMJEGYZÉK. Ára: 1311, Ft. Oldal

40. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, áp ri lis 7., péntek TARTALOMJEGYZÉK. Ára: 207, Ft. Oldal

10288 M A G Y A R K Z L N Y 2004/120. sz $)A (" m II. r $)A (& sz JOGSZABLYOK A Korm $)A (" ny tagjainak rendeletei Az igazs $)A (" g (9 gy-miniszter

Hírlevél július. Fejlesztések és változások a Precíz Integrált Ügyviteli Információs rendszerben III. negyedév

SZERELE SI UTASITAS E S PO TALKATRE SZ KATALO GUS

145. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, ok tó ber 26., péntek TARTALOMJEGYZÉK. Ára: 1344, Ft. Oldal

A LEGFÕBB ÜGYÉSZSÉG HIVATALOS LAPJA. BUDAPEST, szeptember 30. LIV. ÉVFOLYAM ÁRA: 525 Ft 9. SZÁM TARTALOM UTASÍTÁSOK KÖZLEMÉNYEK SZEMÉLYI HÍREK

NAGYÍTÁS MOL NÁR ISCSU ISTVÁN RAINER M. JÁ NOS SÁRKÖZY RÉKA A HATVANAS ÉVEK VILÁGA 339

KOPRO szivattyú család

Erzsébet-akna. Munkások a készülõ aknánál 1898-ban. A jobb alsó kép nagyított részlete. Az aknatorony egy régi képeslapon. Rajz a mûködõ aknáról

BALATON szelet Nyerj vagy Nyerj!

III. ÉVFOLYAM, 7. SZÁM Ára: 2100 Ft MÁRCIUS 31. TARTALOM. oldal oldal. Az ARTISJUS Ma gyar Szer zõi Jog vé dõ Iro da Egye sü let

Hírlevél október. Fejlesztések és változások a. Precíz Integrált Ügyviteli Információs rendszerben IV. negyedév

37. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, április 4., kedd TARTALOMJEGYZÉK. Ára: 575, Ft. Oldal

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. 2006: CXXVII. tv. A Ma gyar Köz tár sa ság évi költ ség ve té sé rõl

GONDOLATOK AZ ISKOLASZÖVETKEZETEK JOGI SZABÁLYOZÁSÁRÓL

Egészséges környezetben tudatos gazdálkodás

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, már ci us 17., hétfõ. 44. szám. Ára: 250, Ft

LVII. ÉVFOLYAM 2. SZÁM ÁRA: 874 Ft ja nu ár 27.

148. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, de cem ber 5., kedd TARTALOMJEGYZÉK. Ára: 1701, Ft. Oldal

SZERVEZETI ÉS MŰKÖDÉSI SZABÁLYZAT

AZ EGÉSZSÉGÜGYI MINISZTÉRIUM HIVATALOS LAPJA FELHÍVÁS!

A közlekedési, hírközlési és energiaügyi miniszter 33/2009. (VI. 30.) KHEM rendelete

Váci Országos Börtön

A MAGYAR KÖZLÖNY MELLÉKLETE T A R T A L O M

TARTALOM. IV. ÉVFOLYAM, 5. SZÁM Ára: 2415 Ft MÁRCIUS 6. KÖZLEMÉNYEK JOGSZABÁLYOK

79. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, jú ni us 12., péntek TARTALOMJEGYZÉK. Ára: 1125, Ft. Oldal

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. 2007: CXXVI. tv. Egyes adótör vények mó do sí tás áról

Mit jelent a neved és hogyan számolj vele?

A SZÓRVÁNNYÁ VÁLÁS FOLYAMATA MINT A NEMZETI KISEBBSÉGI KÖZÖSSÉG LEBOMLÁSÁNAK TERMÉKE

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA

Az Európai Unió regionális politikája

A SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM ÉS AZ ORSZÁGOS MUNKAVÉDELMI ÉS MUNKAÜGYI FÕFELÜGYELÕSÉG HIVATALOS LAPJA FELHÍVÁS! Tartalom

AZ EGÉSZSÉGÜGYI MINISZTÉRIUM HIVATALOS LAPJA FELHÍVÁS!

ALAPÍTÓ OKIRAT módosítás egységes szerkezetben

34. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, már ci us 28., kedd TARTALOMJEGYZÉK. Ára: 1495, Ft. Oldal

A MAGYAR KÖZLÖNY MELLÉKLETE TARTALOM

36. szám II. kötet A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, áp ri lis 3., hétfõ TARTALOMJEGYZÉK. Ára: 4255, Ft

Alt. Tenor. Bass 1,2. Organ S.1,2 B.1,2. Org. 74 Andantino. Trumpet in C ad lib. Sopran 1,2. "Az üdvözítõt régenten, mint megígérte az Isten"

28. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, már ci us 10., péntek TARTALOMJEGYZÉK. Ára: 1863, Ft. Oldal

AZ EGÉSZSÉGÜGYI MINISZTÉRIUM HIVATALOS LAPJA

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, jú ni us 25., szerda. 93. szám. Ára: 2400, Ft

Elemi matematika szakkör

A MICROSEMIC KFT HI VA SVE GZO DTETE SI SZOLGA LTATA S NYU JTA SA RA VONATKOZO FELTE TELEI

21. szám. Budapest, má jus 14., szerda TARTALOMJEGYZÉK. Ára: 525, Ft. Oldal

Gyõr Megyei Jogú Város Önkormányzata egyszerû eljárás ajánlattételi felhívása (12070/2004)

Ked ves Ta ní tók! Ked ves Szü lôk!

Gyakorló feladatok ZH-ra

166. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, de cem ber 22., csütörtök TARTALOMJEGYZÉK. Ára: 2921, Ft. Oldal

8. Kire ütött ez a gyerek?

A SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM ÉS AZ ORSZÁGOS MUNKAVÉDELMI ÉS MUNKAÜGYI FÕFELÜGYELÕSÉG HIVATALOS LAPJA. Tartalom

II. rész JOGSZABÁLYOK. A Kormány rendeletei. A Kormány 219/2004. (VII. 21.) Korm. rendelete M A G Y A R K Ö Z L Ö N Y 2004/102.

A földmûvelésügyi és vidékfejlesztési miniszter 27/2007. (IV. 17.) FVM rendelete

A Kormány rendeletei

Nyíregyházi Fıiskola KTI Európai Üzleti és Kommunikációs Szakközépiskolája. 2008/2009. tanév év végi értékelése és beszámolója

Jegyzőkönyv. EHÖK Elnökségi május 21. (17.00) Helyszín: ELTE EHÖK irodai tárgyaló terem (Budapest, Szerb utca )

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

73. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, má jus 28., TARTALOMJEGYZÉK. csütörtök. Ára: 1395, Ft. Oldal

Bu da pest, au gusz tus 25. Ára: 1386 Ft 10. szám TARTALOMJEGYZÉK

III. ÉVFOLYAM, 1. SZÁM Ára: 715 Ft JANUÁR 17.

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA

155. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, ok tó ber 31., péntek TARTALOMJEGYZÉK. Ára: 1110, Ft. Oldal

Feltétel. Perfekt Vagyonés üzemszünet biztosítás. Érvényes: januártól

122. szám A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, ok tó ber 5., csütörtök TARTALOMJEGYZÉK. Ára: 1533, Ft. Oldal

NEFAG Zrt. SZARVASGOMBA-VADÁSZAT KARCAG-APAVÁRA ERDŐTERÜLETÉN. PÁRATLAN ÉLMÉNYT NYÚJTÓ KALAND A NEFAG Zrt. VENDÉGEKÉNT

A Kőbányai Rece-fice Óvoda és a Kőbányai Csillagfürt Bölcsőde (1103 Budapest, Vaspálya 8-10.) felújítása és tornaszoba kialakítása

A MAGYAR KÖZTÁRSASÁG HIVATALOS LAPJA. Budapest, má jus 29., csütörtök. 80. szám. Ára: 1755, Ft

Átírás:

11. elo ada s Oszd meg e s uralkodj! elvu algoritmusok Sergya n Szabolcs sergyan.szabolcs@nik.uni-obuda.hu O budai Egyetem Neumann Ja nos Informatikai Kar Alkalmazott Informatikai Inte zet 1 / 24

Tartalom 1 Maximumkiva laszta s 2 O sszefe su lo rendeze s 3 Gyorsrendeze s 4 A k-adik legkisebb elem kiva laszta sa 2 / 24

Oszd meg e s uralkodj! elv Mit hı vunk Oszd meg e s uralkodj! elvnek? Oszd meg e s uralkodj! elv: A megoldando proble ma t felosztjuk kisebb re szfeladatokra Az egyes re szfeladatokat rekurzı v mo don megoldjuk A re szfeladatok megolda sait egyesı tju k Ezzel a megko zelı te ssel olyan proble ma k is megoldhato k, amiket ma s mo dszerrel is meg lehet oldani 3 / 24

Tartalom 1 Maximumkiva laszta s 2 O sszefe su lo rendeze s 3 Gyorsrendeze s 4 A k-adik legkisebb elem kiva laszta sa 4 / 24

Maximumkiva laszta s Pszeudoko d Bemenet: x T to mb, bal ege sz, jobb ege sz; ahol T o sszehasonlı thato Kimenet: Az x to mb bal e s jobb indexei ko zo tti re szto mbje maxima lis eleme nek indexe. fu ggve ny Felezo Maximumkiva laszta s(x, bal, jobb) ha bal = jobb akkor vissza bal ku lo nben center bal+jobb 2 balmax Felezo Maximumkiva laszta s(x, bal, center ) jobbmax Felezo Maximumkiva laszta s(x, center + 1, jobb) ha x[balmax] x[jobbmax] akkor vissza balmax ku lo nben vissza jobbmax ela gaza s ve ge ela gaza s ve ge fu ggve ny ve ge Fu ggve ny hı va sa: Felezo Maximumkiva laszta s(x, 1, n) 5 / 24

Tartalom 1 Maximumkiva laszta s 2 O sszefe su lo rendeze s 3 Gyorsrendeze s 4 A k-adik legkisebb elem kiva laszta sa 7 / 24

O sszefe su lo rendeze s Alapo tlet Az n elemu to mbo t felosztjuk ke t (n/2 elemu ) re szto mbre. A re szto mbo ket rekurzı v mo don rendezzu k, azaz tova bbosztjuk fele olyan hosszu re szto mbo kre, az 1 elemu re szto mb ma r o nmaga ban rendezett. A rendezett re szto mbo ket o sszefuttatjuk megtartva a rendezettse get. 8 / 24

O sszefe su lo rendeze s Pszeudoko d Bemenet: x T to mb, bal ege sz, jobb ege sz; ahol T o sszehasonlı thato Kimenet: x T rendezett to mb elja ra s O sszefe su lo Rendeze s(cı mszerint x, bal, jobb) ha bal < jobbh akkor i center bal+jobb 2 O sszefe su lo Rendeze s(x, bal, center ) O sszefe su lo Rendeze s(x, center + 1, jobb) O sszefe su l(x, bal, center, jobb) ela gaza s ve ge elja ra s ve ge Elja ra s hı va sa: O sszefe su lo Rendeze s(x, 1, n) 9 / 24

O sszefe su lo rendeze s O sszefe su le s Bemenet: x T to mb, bal ege sz, center ege sz, jobb ege sz; ahol T o sszehasonlı thato Kimenet: x T to mb elja ra s O sszefe su l(cı mszerint x, bal, center, jobb) n1 center bal + 1 n2 jobb center y1 Le trehoz(t)[n1 + 1] ciklus i 1-to l n1 -ig y1 [i] x[bal + i 1] ciklus ve ge y2 Le trehoz(t)[n2 + 1] ciklus j 1-to l n2 -ig y2 [j] x[center + j] ciklus ve ge y1 [n1 + 1] + y2 [n2 + 1] + i 1 j 1 ciklus k bal-to l jobb-ig ha y1 [i] y2 [j] akkor x[k] y1 [i] i i +1 ku lo nben x[k] y2 [j] j j +1 ela gaza s ve ge ciklus ve ge elja ra s ve ge 10 / 24

O sszefe su lo rendeze s Megjegyze sek Az algoritmus futa si ideje O(N log N)-es. A megvalo sı ta shoz szu kse gu nk van sege dto mbo kre, ı gy nagyme retu to mbo k esete n helyfoglala s szempontja bo l nem hate kony. 12 / 24

Tartalom 1 Maximumkiva laszta s 2 O sszefe su lo rendeze s 3 Gyorsrendeze s 4 A k-adik legkisebb elem kiva laszta sa 13 / 24

Gyorsrendeze s Alapo tlet Va logassuk sze t u gy a rendezendo x to mb elemeit, hogy az elso elemne l (ta mpont elem) kisebb e rte ku elemek az elso elem ele, a nagyobbak pedig mo ge keru ljenek. A ta mpont elem biztos, hogy a ve gleges helye re keru l a sze tva logata s ve ge re. Ve gezzu k el ezt a sze tva logata st a ta mpont elemne l kisebbekre, illetve nagyobbakra ku lo n-ku lo n. Ez az elja ra s is az Oszd meg e s uralkodj! elvet haszna lja. 14 / 24

Gyorsrendeze s Sze tva logata s Bemenet: x T to mb, bal ege sz, jobb ege sz; ahol T o sszehasonlı thato Kimenet: x T to mb, idx ege sz fu ggve ny Sze tva logat(cı mszerint x, bal, jobb) sege d x[bal] ciklus amı g bal < jobb ciklus amı g (bal < jobb) (x[jobb] > sege d) jobb jobb 1 ciklus ve ge ha bal < jobb akkor x[bal] x[jobb] bal bal + 1 ciklus amı g (bal < jobb) (x[bal] sege d) bal bal + 1 ciklus ve ge ha bal < jobb akkor x[jobb] x[bal] jobb jobb 1 ela gaza s ve ge ela gaza s ve ge ciklus ve ge idx bal x[idx] sege d vissza idx fu ggve ny ve ge 15 / 24

Gyorsrendeze s Pszeudoko d Bemenet: x T to mb, bal ege sz, jobb ege sz; ahol T o sszehasonlı thato Kimenet: x T rendezett to mb elja ra s GyorsRendeze s(cı mszerint x, bal, jobb) idx Sze tva logat(x, bal, jobb) ha idx > bal + 1 akkor GyorsRendeze s(x, bal, idx 1) ela gaza s ve ge ha idx < jobb 1 akkor GyorsRendeze s(x, idx + 1, jobb) ela gaza s ve ge elja ra s ve ge Elja ra s hı va sa: GyorsRendeze s(x, 1, n) 16 / 24

Gyorsrendeze s Megjegyze s A Gyorsrendeze sne l alkalmazott Sze tva logat meto dus mindig a vizsga lt re szto mb elso eleme hez viszonyı tva va logatja ke t re szre a re szto mbo t. Emiatt pl. elve rendezett to mb esete n az algoritmus futa si ideje O n2 -es, mı g a tlagos esetben csak O (n log n)-es. Javı thatunk az algoritmuson, ha ve letlenszeru en jelo lju k ki, hogy a vizsga lt re szto mb melyik eleme legyen, amelyhez viszonyı tva sze tva logatjuk a re szto mb elemeit. 18 / 24

Tartalom 1 Maximumkiva laszta s 2 O sszefe su lo rendeze s 3 Gyorsrendeze s 4 A k-adik legkisebb elem kiva laszta sa 19 / 24

A k-adik legkisebb elem kiva laszta sa Feladat: egy to mb k-adik legkisebb eleme t szeretne nk meghata rozni Megolda sai javaslat: rendezzu k a to mbo t, majd vegyu k a (rendezett) elemek ko zu l a k-adikat Eddigi ismereteink alapja n ez a tlagosan O(N log N) ido t ige nyel Nem lehetne ezen valamelyest gyorsı tani? 20 / 24

A k-adik legkisebb elem kiva laszta sa Pszeudoko d Bemenet: x T to mb, bal ege sz, jobb ege sz, k ege sz; ahol T o sszehasonlı thato Kimenet: k-adik legkisebb to mbelem e rte ke fu ggve ny k-adiklegkisebbelem(x, bal, jobb, k) ha bal = jobb akkor vissza x[bal] ku lo nben idx Sze tva logat(x, bal, jobb) ha k = idx bal + 1 akkor vissza x[idx] ku lo nben ha k < idx bal + 1 akkor vissza k-adiklegkisebbelem(x, bal, idx 1, k) ku lo nben vissza k-adiklegkisebbelem(x, idx + 1, jobb, k (idx bal + 1)) ela gaza s ve ge ela gaza s ve ge fu ggve ny ve ge Fu ggve ny hı va sa: k-adiklegkisebbelem(x, 1, n, k) 21 / 24

A k-adik legkisebb elem kiva laszta sa Megjegyze sek Az ismertetett algoritmus a tlagos esetben O (n)-es, de legrosszabb esetben O (n log n)-es. Nem lehetne valamilyen mo don u gy javı tani, hogy legrosszabb esetben is csak O (n)-es legyen? Proble ma ott van, mint a Gyorsrendeze s algoritmusna l, hogy a sze tva logata sna l haszna lt ta mpont elemet mike nt va lasztjuk ki. 23 / 24

A ta mpont elem kiva laszta sa O tlet 1 2 A bemeneti to mb n darab eleme t rendezzu k bn/5c darab 5 elembo l a llo csoportba, a marade k n mod 5 darab elembo l alkossunk egy u jabb csoportot (ha n mod 5 6= 0). Az dn/5e darab csoportnak keressu k meg a media nja ta (3. legkisebb) eleme t. Ehhez pl. rendezzu k az 5 darab elemet javı tott beilleszte ses rendeze ssel, majd va lasszuk ki minden csoportbo l a media nt. 3 A k-adiklegkisebbelem fu ggve ny rekurzı v haszna lata val hata rozzuk meg az elo zo le pe sben kapott dn/5e darab media n m-szel jelo lt media nja t. 4 A sze tva logata st valo sı tsuk meg u gy, hogy m-et haszna ljuk ta mpont elemke nt. a Media n: sorba rendezve a to mb elemeit az dn/2e-edik elem, ahol n a to mb elemsza ma. 24 / 24