Rendezés. 1. Példa: Legyen A=R, és a reláció a kisebb < jel. Az a b reláció azokat a számpárokat jelenti, amelyekre fennáll az a<b összefüggés.

Hasonló dokumentumok
4.2. Rendezés. 1. Példa: A=R, és a reláció a kisebb < jel. Az aρb reláció azokat a számpárokat jelenti, amelyekre fennáll az a<b összefüggés.

Elsőbbségi (prioritásos) sor

VÉLETLENÍTETT ALGORITMUSOK. 1.ea.

(A TÁMOP /2/A/KMR számú projekt keretében írt egyetemi jegyzetrészlet):

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

Kétoldali hibás Monte Carlo algoritmus: mindkét válasz esetén hibázhat az algoritmus, de adott alsó korlát a hibázás valószínűségére.

Kalkulus I. Első zárthelyi dolgozat szeptember 16. MINTA. és q = k 2. k 2. = k 1l 2 k 2 l 1. l 1 l n 6n + 8

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.

Számsorozatok. 1. Alapfeladatok december 22. sorozat határértékét, ha. 1. Feladat: Határozzuk meg az a n = 3n2 + 7n 5n létezik.

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

Algoritmuselmélet 2. előadás

Matematika B4 I. gyakorlat

MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA)

( a b)( c d) 2 ab2 cd 2 abcd 2 Egyenlőség akkor és csak akkor áll fenn

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

6. Elsőbbségi (prioritásos) sor

3. SOROZATOK. ( n N) a n+1 < a n. Egy sorozatot (szigorúan) monotonnak mondunk, ha (szigorúan) monoton növekvő vagy csökkenő.

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

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.

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

16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Nevezetes sorozat-határértékek

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

Számjegyes vagy radix rendezés

2.5. A lineáris kongruencia egyenlet.

Sorozatok A.: Sorozatok általában

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.

1. ALGORITMUSOK MŰVELETIGÉNYE

1. ábra. Számláló rendezés

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

18. Differenciálszámítás

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

Algoritmusok vektorokkal keresések 1

Hiba! Nincs ilyen stílusú szöveg a dokumentumban.-86. ábra: A példa-feladat kódolási változatai

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

ALGEBRA. egyenlet megoldásait, ha tudjuk, hogy egész számok, továbbá p + q = 198.

Pályázat címe: Pályázati azonosító: Kedvezményezett: Szegedi Tudományegyetem Cím: 6720 Szeged, Dugonics tér

VII. A határozatlan esetek kiküszöbölése

A G miatt (3tagra) Az egyenlőtlenségek két végét továbbvizsgálva, ha mindkét oldalt hatványozzuk:

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli beugró kérdések. Készítette: Szántó Ádám Tavaszi félév

Haladó rendezések. PPT 2007/2008 tavasz.

2. Hatványsorok. A végtelen soroknál tanultuk, hogy az. végtelen sort adja: 1 + x + x x n +...

Lajkó Károly Kalkulus I. példatár mobidiák könyvtár

Matematika I. 9. előadás

Statisztika 1. zárthelyi dolgozat március 21.

A statisztikai vizsgálat tárgyát képező egyedek összességét statisztikai sokaságnak nevezzük.

Sorozatok, határérték fogalma. Függvények határértéke, folytonossága

10.M ALGEBRA < <

ANALÍZIS I. TÉTELBIZONYÍTÁSOK ÍRÁSBELI VIZSGÁRA

f (M (ξ)) M (f (ξ)) Bizonyítás: Megjegyezzük, hogy konvex függvényekre mindig létezik a ± ben

A függvénysorozatok olyanok, mint a valós számsorozatok, csak éppen a tagjai nem valós számok,

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

2. fejezet. Számsorozatok, számsorok

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli tételek. Készítette: Szántó Ádám Tavaszi félév

Adatbázis rendszerek Gy: Algoritmusok C-ben

Kombinatorika. Variáció, permutáció, kombináció. Binomiális tétel, szita formula.

Eseme nyalgebra e s kombinatorika feladatok, megolda sok

Matematikai statisztika

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

24. tétel A valószínűségszámítás elemei. A valószínűség kiszámításának kombinatorikus modellje.

BIOMATEMATIKA ELŐADÁS

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Diszkrét matematika II., 3. előadás. Komplex számok

1 k < n(1 + log n) C 1n log n, d n. (1 1 r k + 1 ) = 1. = 0 és lim. lim n. f(n) < C 3

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.

Az új építőipari termelőiár-index részletes módszertani leírása

194 Műveletek II. MŰVELETEK A művelet fogalma

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

Fourier sorok FO 1. Trigonometrikus. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Bevezető analízis II. példatár

(d) x 6 3x 2 2 = 0, (e) x + x 2 = 1 x, (f) 2x x 1 = 8, 2(x 1) a 1

NUMERIKUS SOROK II. Ebben a részben kizárólag a konvergencia vizsgálatával foglalkozunk.

Innen. 2. Az. s n = 1 + q + q q n 1 = 1 qn. és q n 0 akkor és csak akkor, ha q < 1. a a n végtelen sor konvergenciáján nem változtat az, ha

1. Adatok közelítése. Bevezetés. 1-1 A közelítő függvény

SZÁMELMÉLET. Vasile Berinde, Filippo Spagnolo

Gyakorló feladatok II.

Programozás II. előadás

Feladatok megoldása. Diszkrét matematika I. Beadandó feladatok. Bujtás Ferenc (CZU7KZ) December 14, feladat: (A B A A \ C = B)

Mőbiusz Nemzetközi Meghívásos Matematika Verseny Makó, március 26. MEGOLDÁSOK

XXVI. Erdélyi Magyar Matematikaverseny Zilah, február II.forduló -10. osztály

Kalkulus II., második házi feladat

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

1 h. 3. Hogyan szól a számtani és a mértani közép közötti összefüggést kifejező tétel?

Dr. Tóth László, Kombinatorika (PTE TTK, 2007) nem vagyunk tekintettel a kiválasztott elemek sorrendjére. Mennyi a lehetőségek száma?

Numerikus sorok. Kónya Ilona. VIK, Műszaki Informatika ANALÍZIS (1) Oktatási segédanyag

3. MINTAFELADATSOR EMELT SZINT JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

A félév során előkerülő témakörök

1. A KOMPLEX SZÁMTEST A természetes, az egész, a racionális és a valós számok ismeretét feltételezzük:

Ha I < B, akkor mind az online algoritmusnak mind pedig az optimális offline algoritmusnak a költsége I, így B(I)/OPT(I)=1.

Pl.: hányféleképpen lehet egy n elemű halmazból k elemű részhalmazt kiválasztani, n tárgyat hányféleképpen lehet szétosztani k személy között stb.?

Programozási segédlet

Kvantum párhuzamosság Deutsch algoritmus Deutsch-Jozsa algoritmus

14. Mediánok és rendezett minták

V. Deriválható függvények

Programozási módszertan. Mohó algoritmusok

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

Függvényhatárérték-számítás

Eseményalgebra, kombinatorika

VI.Kombinatorika. Permutációk, variációk, kombinációk

Átírás:

Redezés Defiíció: A reláció Valamely A halmaz eseté a AA részhalmazt az A halmazo értelmezett relációak evezzük. Azt modjuk, hogy az A halmaz a és b eleme a relációba va, ha (a,b). Rövide ezt így írjuk: ab.. Példa: Legye A=R, és a reláció a kisebb < jel. Az ab reláció azokat a számpárokat jeleti, amelyekre feáll az a<b összefüggés. Defiíció: A redezési reláció A relációt redezési relációak evezzük az A halmazo, ha. reflexív, azaz aa aa eseté;. ab és ba akkor és csak akkor áll fe, ha a=b. 3. trazitív, azaz ab és bc maga utá voja az ac teljesülését; 4. atiszimmetrikus, azaz vagy az ab, vagy a ba feáll a,ba eseté.. Példa: A valós számok közötti reláció redezési reláció. Redezésről olya adattípus eseté beszélhetük, amelyre értelmezve va egy redezési reláció. Tekitsük a sorozatot és aak is vegyük a tömbös realizációját. A redezés a sorozat elemeiek olya felsorolását jeleti, amelybe az egymást követő elemek a megadott relációba vaak. A tárgyalást valós számoko (legikább egészek) visszük végig és relációak a kisebb, egyelő relációt () tekitjük. ami em csökketi az általáosságot. A redezés mid a mai időkig fotos iformatikai probléma. Gyakra jeleik meg mit egy agyobb probléma része. A redezési algoritmusokkal kapcsolatba több szempot szeriti igéy léphet föl. Ilyeek például az alábbiak: a. Helybe redezés, azaz a redezés eredméye az eredeti helyé jeleje meg, legfeljebb kostas méretű többletmemória felhaszálása révé. b. Gyorsaság. A redezési idő legye miél rövidebb. c. Adaptivitás. Az algoritmus haszálja ki a kulcsok között már meglévő redezettséget. d. Stabilitás. A redezés őrizze meg az azoos kulcsú rekordok eseté a rekordok egymáshoz képesti eredeti sorredjét. (Például telefoszámlák készítésekor az azoos kulcsú előfizetői hívások időredi sorredje maradjo meg.) e. Az algoritmus csak a kulcsokat redezze a rekordokra mutató poiterekkel, vagy az összes rekordot mozgassa. f. Belső redezés legye (csak a belső memóriát vegye igéybe a redezéshez), vagy külső redezés legye (háttértárakat is igéybe vehet). g. Összehasolításo alapuljo a redezés, vagy azt e vegye igéybe az algoritmus. (Ez utóbbi esetbe a kulcsokra további megszorításokat kell tei.) h. Optimális legye a redezési algoritmus, vagy sem. (Nem biztos, hogy az adatok az optimális algoritmus által megkívát módo vaak megadva.) i. Az összes redezedő adatak redelkezésre kell-e állia a redezés teljes folyamata alatt, vagy sem. j. A redezések csak a befejeztével va eredméy, vagy meet közbe is a már redezett rész tovább em változik. Nem lehet kizári a em optimális algoritmusokat sem az alkalmazásokból, mert egy probléma megoldásába em csak a redezési algoritmus optimalitása az egyetle szempot a problémamegoldás hatékoyságára. (Hiába gyors az algoritmus, ha az adatok em a kívát formába állak redelkezésre, és a koverzió lerotja a hatékoyságot.)

. A beszúró redezés A beszúró redezés alapelve agyo egyszerű. A sorozat második elemétől kezdve (az első ömagába már redezett) egyekét a kulcsokat a sorozat eleje felé haladva a megfelelő helyre mozgatjuk összehasolítások révé. A sorozatak a vizsgált kulcsot megelőző elemei midig redezettek az algoritmus sorá.. Példa: Az alábbi kulcsok eseté yíl mutatja a mozgatadó kulcsot és a beszúrás helyét. 8 4 3 6 5 9 7 4 8 3 6 5 9 7 4 8 3 6 5 9 7 3 4 8 6 5 9 7 3 4 8 6 5 9 7 3 4 6 8 5 9 7 3 4 5 6 8 9 7 3 4 5 6 8 9 7 3 4 5 6 7 8 9. algoritmus Beszúró redezés // T BESZÚRÓ_RENDEZÉS ( A ) // Iput paraméter: A - a redezedő tömb 3 // Output paraméter: A - a redezett tömb 4 // 5 FOR j TO hossz [ A ] DO 6 kulcs A j 7 Beszúrás az A...j redezett sorozatba 8 i j 9 WHILE i > 0 és A i > kulcs DO 0 A i + A i DEC(i) A i + kulcs 3 RETURN (A)

. A miimum kiválasztásos redezés Hossz[A]- -szer végigmegyük a tömbö. Mide alkalommal eggyel magasabb idexű elemtől iduluk. Megkeressük a miimális elemet, és azt az aktuális meet kezdő elemével felcseréljük.. algoritmus Miimum kiválasztásos redezés T // MINIMUM_KIVÁLASZTÁSOS_RENDEZÉS( A ) // Iput paraméter: A - a redezedő tömb 3 // Output paraméter: A - a redezett tömb 4 // 5 FOR i TO hossz[a]- DO 6 // miimumkeresés 7 k i 8 x A i 9 FOR j i + TO hossz[a] DO 0 IF A j < x THEN k j x A j 3 // az i. elem és a miimum felcserélése 4 A k A i 5 A i x 6 RETURN ( A )

3. A buborékredezés A buborékredezésél az egymás mellett álló elemeket hasolítjuk össze, és szükség eseté sorredjüket felcseréljük. Ezt midaddig folytatjuk, míg szükség va cserére. 3. algoritmus Buborékredezés (Bubble Sort) T // BUBORÉKRENDEZÉS( A ) // Iput paraméter: A - a redezedő tömb 3 // Output paraméter: A - a redezett tömb 4 // 5 j 6 REPEAT emvoltcsere IGAZ 7 FOR i hossz[a] DOWNTO j DO 8 IF A i < A i 9 THEN csere A i A i 0 emvoltcsere HAMIS INC( j ) UNTIL Nemvoltcsere 3 RETURN ( A ) Időigéy a legrosszabb esetbe: T Az algoritmusra jellemző a sok csere, az elem lassa kerül a helyére.

4. A Shell redezés (redezés fogyó övekméyel) A Shell redezés a buborékredezésél tapasztalt lassú helyrekerülést igyekszik felgyorsítai azáltal, hogy egymástól távol álló elemeket hasolít és cserél fel. A távolságot (itt övekméyek evezik) fokozatosa csökketi, míg az em lesz. Mide övekméy eseté beszúrásos redezést végez az adott övekméyek megfelelő távolságra álló elemekre. Mire a övekméy lesz, sok elem már majdem a helyére kerül. A övekméyek felépítése. Haszáljuk t számú övekméyt. Legyeek ezek A követelméy: h t, és hi hi, i, t. A szakirodalomba javasolt övekméyadatok: t log h t. h i h i, 3, 6, 8, 4,, h i 3hi, 40, 3, 4, h h 3, 5, 7, 3, i i 4. algoritmus Shell redezés //,5 T SHELL_RENDEZÉS( A ) // Iput paraméter: A - a redezedő tömb 3 // Output paraméter: A - a redezett tömb 4 // 5 FOR s TO t DO 6 m h s 8 FOR j m + TO hossz[a] DO 9 i j - m 0 k kulcs[a j ] r A j WHILE i>0 és k < A j DO 3 A i+m A i 4 i i m 5 A i + m r 6 RETURN ( A ) Megjegyzés: A hossz[a] a redezedő elemek számát jelöli. Példa: Shell redezésre,5 Időigéy: alkalmas övekméy választással leszorítható T -re.

5. Az összefésülő redezés Az összefésülő redezés alapelve az összefésülés műveleté alapszik, amely két redezett tömbből egy új redezett tömböt állít elő. Az összefésülés folyamata: Midkét tömbek megvizsgáljuk az első elemét. A két elem közül a kisebbiket beírjuk az eredméytömb első szabad eleme helyére. A felszabaduló helyre újabb elemet veszük abból a tömbből, ahoa előzőleg a kisebbik elem jött. Ezt a tevékeységet folytatjuk midaddig, míg valamelyik kiiduló tömbük ki em ürül. Ezutá a még vizsgálat alatt lévő elemet, valamit a megmaradt másik tömb további elemeit sorba az eredméytömbhöz hozzáírjuk a végé. Az eredméytömb em lehet azoos egyik bemeeti tömbbel sem, vagyis az eljárás em helybe végzi az összefésülést. Legye ÖSSZEFÉSÜL ( A, p, q, r ) az az eljárás, amely összefésüli az A p.. q és az A q +.. r résztömböket, majd az eredméyt az eredeti A p.. r helyre másolja vissza. Az eljárás lieáris méretű további segédmemóriát igéyel. Az összefésülés időigéye, ha összese elemük va. (Egy meetbe elvégezhető és az kell is hozzá.) Defiíció: Az oszd meg és uralkodj elv Az oszd meg és uralkodj elv egy algoritmus tervezési stratégia A problémát olya kisebb méretű, azoos részproblémákra osztjuk föl, amelyek rekurzíva megoldhatók. Ezutá egyesítjük a megoldásokat. Az összefésülő redezés oszd meg és uralkodj típusú algoritmus, melyek az egyes fázisai: Felosztás: A tömböt két elemű részre osztjuk Uralkodás: Rekurzív összefésüléses módo midkettőt redezzük.(az elemű már redezett) Egyesítés: A két részsorozatot összefésüljük. 5. algoritmus Összefésülő redezés (Merge Sort) T // log ÖSSZEFÉSÜLŐ_RENDEZÉS ( A, p, r ) // Iput paraméter: A - a tömb, melyek egy részét redezei kell 3 // p - a redezedő rész kezdőidexe 4 // r - a redezedő rész végidexe 5 // Output paraméter: A - a redezett résszel redelkező tömb 6 // 7 IF p < r 8 THEN p r q 9 ÖSSZEFÉSÜLŐ_RENDEZÉS ( A, p, q ) 0 ÖSSZEFÉSÜLŐ_RENDEZÉS ( A, q +, r ) ÖSSZEFÉSÜL ( A, p, q, r ) RETURN (A) A teljes tömb redezését megoldó utasítás: ÖSSZEFÉSÜLŐ_RENDEZÉS(A,,hossz[A]).

Az összefésülő redezés időigéye Felosztás: Uralkodás: Egyesítés: T T, T, ha ha Az algoritmus időigéye megkapható a mester tétel. potja alapjá: T log. 5.. A Batcher-féle páros-páratla összefésülés Az eljárás csak az összefésülést teszi hatékoyabbá. Nem öálló redező módszer. Nagy előye, hogy párhuzamosíthatók a lépései. Legye két redezett sorozatuk, az elemű A sorozat és az m elemű B sorozat. A = {a,,a } B = {b,,b m } A két sorozat összefésülése adja a C = {c,,c +m } sorozatot. Az összefésülés módja a következő: Midkét kiiduló sorozatból kettőt képezük, a páratla idexű és a páros idexű elemek sorozatait: A = {a,a 3,a 5, } A = {a,a 4,a 6, } B = {b,b 3,b 5, } B = {b,b 4,b 6, } Összefésüljük az A,B sorozatokat, eredméye az U sorozat. Összefésüljük az A,B sorozatokat, eredméye a V sorozat. Összefésüljük az U és V sorozatokat, eredméy a C sorozat. Példa: Batcher összefésülésre Tétel: A Batcher-féle összefésülés tétele A Batcher összefésülés sorá mi u i v i és c maxu, v, c, i i i i m i Bizoyítás Fogadjuk el kiiduláskét igazak azt a feltevést, hogy C elejéből páros számú elemet véve azok között azoos számú U és V elem va. Ekkor c, c u,, u v, v c, c u,, u v,, v és, i i i Ebből viszot c, i i, i c i, c i u, v i c, ahoa i i miatt adódik a tétel állítása. A feltételezésük bizoyítása: c,, c a,, a b, b. k k, k s Legye s Ezek közül U-ba kerül elem az A-ból (az A páratla idexű elemei) és

s k elem a B-ből (a B páros idexű elemei), Valamit V-be kerül s elem az A-ból (az A páros idexű elemei) és s k elem a B-ből (a B páratla idexű elemei). Ie az U-beliek száma k s k s és a V-beliek száma k s k s

6. Gyorsredezés Felosztás: Az A p.. r tömböt két emüres A p... q és A q +... r részre osztjuk úgy, hogy A p... q mide eleme kisebb egyelő legye, mit A q +... r bármely eleme. (A megfelelő q meghatározadó.) Uralkodás: Az A p... q és A q +... r résztömböket rekurzív gyorsredezéssel redezzük. Egyesítés: Nics rá szükség, mivel a tömb már redezett. (A saját helyé redeztük.) 6. algoritmus Gyorsredezés (Quick Sort) T T //, átlagos: log GYORSRENDEZÉS( A,p,r ) // Iput paraméter: A a tömb, melyek egy részét redezei kell 3 // p - a redezedő rész kezdőidexe 4 // r - a redezedő rész végidexe 5 // Output paraméter: A - a redezett résszel redelkező tömb 6 // 7 IF p < r 8 THEN FELOSZT ( A, p, r, A p, q ) 9 GYORSRENDEZÉS ( A, p, q ) 0 GYORSRENDEZÉS ( A, q+, r ) RETURN (A) A gyorsredezés időigéye: A legrosszabb eset: a felosztás mide lépésbe, elemű T, T T T T T T k A legjobb eset:, a felosztás, ekkor T, T T, ha > Ez megegyezik az összefésülő módszer formulájával, tehát T log k Megjegyzés: ha a felosztás aráya álladó pl. T T 9 0 T 0 Bizoyítható, hogy ekkor is T log T log adódik.. 9,, akkor a rekurziós formula: 0 0. Eze túlmeőe az átlagos értékre is

Felosztjuk az elemű A tömböt (közel) 7. Négyzetes redezés számú részre (alcsoportra). Midegyikbe (közel) elemet helyezük el, majd midegyikből kiemeljük (eltávolítjuk) a legkisebbet. A kiemeltekből egy főcsoportot képzük. Kiválasztjuk a főcsoport legkisebb elemét és azt az eredméytömbbe írjuk, a főcsoportból pedig eltávolítjuk ( töröljük ). Helyére abból az alcsoportból ahoa ő származott újabb legkisebbiket emelük be a főcsoportba. Az eljárást folytatjuk, míg az elemek el em fogyak a főcsoportból.,5 Időigéy: összehasolításszám T. Továbbfejlesztett változat, amikor 3 számú elem va egy fő-főcsoportba és 3 számú főcsoport va, midegyikbe 3 számú elemmel, melyek midegyikéhez egy 3 elemszámú alcsoport tartozik. A redezés elve az előző algoritmuséhoz hasoló. 4 Időigéy: 3 3 T A Stirlig formula és az Alsó korlát összehasolító redezésre tétel Tétel: Bizoyítás A Stirlig formula Igaz az alábbi összefüggés az!-ra: e! e, =3,4,5, Az egyelőtleséget a logaritmusra látjuk be. A logaritmus függvéy kokáv és emiatt írható: l l l l! l l 3 l 4 l! l x dx l x dx x l x! l l l x l l 3 l l x dx x l! l x dx l x dx x l x x ( ) l ( ) ( ) l ( ) 4 l ()

Az összehasolító módszerek dötési fája a a? ige em a a 3? a a 3? ige em ige em,, 3 a a 3?,, 3 a a 3? ige em ige em, 3,, 3, 3,, 3,, Tétel: Bizoyítás Alsó korlát összehasolító redezésre Bármely elemet redező dötési fa magassága T log Egy h magasságú dötési fa leveleiek száma legfeljebb h. Mivel mide permutációt redezi kell tudia az algoritmusak, és összese! permutáció lehetséges, ezért a dötései fáak h legalább! levele kell legye. Tehát h log!. A! feáll. Logaritmálva: Stirlig formula szerit!. Behelyettesítve: e h log log log e. e h log Tehát:

Lieáris idejű redezők 8. A leszámláló redezés A lieáris idejű redezők em haszálják az összehasolítást. A leszámláló redezés ( = bisort, ládaredezés) bemeete és k közötti egész szám. Időigéy: T k. Ha k, akkor a redezési idő is T, ahol =hossz[a]. Az elemeket az A.. tömbbe helyezzük el. Szükség va további két tömbre: B.. az eredméyt tárolja majd, C..k segédtömb. A redezés léyege, hogy A mide elemére meghatározza a ála kisebb elemek számát. Ez alapjá tudja az elemet a kimeeti tömb megfelelő helyére tei. Stabil eljárás: az azoos értékűek sorredje megegyezik az eredetivel 8. algoritmus Leszámláló redezés // T LESZÁMLÁLÓ_RENDEZÉS ( A, k, B ) // Iput paraméter: A - a redezedő tömb 3 // k kulcs felső korlát, pozitív egész 4 // Output paraméter: B - a redezett tömb 5 // 6 FOR i TO k DO 7 C i 0 8 FOR j TO hossz[a] DO 9 INC ( C ) A j 0 // C i azt mutatja, hogy háy i értékű számuk va FOR i TO k DO C i Ci Ci 3 // C i most azt mutatja, hogy háy i-től em agyobb számuk va 4 FOR j hossz[a] DOWNTO DO 5 B C Aj A j 6 DEC ( C ) 7 RETURN (B) A j

9. A számjegyes redezés (radix redezés) Azoos hosszúságú szavak, strigek redezésére haszálhatjuk. (Dátumok, számjegyekből álló számok, kártyák, stb.) Legye d a szó hossza, k pedig az egy karaktere, mezőbe előforduló lehetséges jegyek, jelek száma, pedig az adatok száma. Időigéy: T d k 9. algoritmus Számjegyes redezés // T d k SZÁMJEGYES_RENDEZÉS ( A ) // Iput paraméter: A - a redezedő tömb 4 // Output paraméter: A - a redezett tömb 4 // 5 FOR i d DOWNTO DO 6 Stabil módszerrel redezzük az A tömböt az i. számjegyre 7 RETURN (A) 0. Edéyredezés Feltételezzük, hogy a bemeet a [0, ) itervallumo egyeletes eloszlású számok sorozata. Felosztjuk a [0, ) itervallumot egyelő részre (edéyek). A bemeetet szétosztjuk az edéyek között, mide edéybe egy listát kezelve. Az azoos edéybe esőket beszúrásos módo redezzük. A végé a listákat egybefűzzük az elsővel kezdve. Várható időigéy: T 0. algoritmus Edéyredezés // T EDÉNYRENDEZÉS ( A, L ) // Iput paraméter: A - a redezedő tömb, elemű 3 // Output paraméter: L - a redezett elemek listája 4 // Meet közbe szükség va egy elemű B tömbre, mely listafejeket tárol. Idexelése 0-val idul. 5 hossz[a] 6 FOR i TO DO 7 Beszúrjuk az A i elemet a B A i listába 8 FOR i 0 TO - DO 9 Redezzük a B i listát beszúrásos redezéssel 0 Sorba összefűzzük a B 0, B,, B - listákat. képezve az L listát RETURN (L)

. Külső tárak redezése Külső tárak redezéséél az elérési és a mozgatási idő szerepe drasztikusa megő. Az összefésüléses módszerek jöek elsősorba számításba. Defiíció: A k hosszúságú futam file-ba Egy file k szomszédos rekordjából álló részét k hosszúságú futamak evezzük, ha bee a rekordkulcsok redezettek (pl.: övekedő sorredűek). Először alkalmas k-val (k= midig megfelel) a redezedő file-t két másik file-ba átmásoljuk úgy, hogy ott k hosszúságú futamok jöjjeek létre. Ezutá a két file-t összefésüljük egy-egy elemet véve midkét file-ból. Az eredméyfile-ba már k lesz a futamhossz.(esetleg a legutolsó rövidebb lehet). Ezt ismételgetjük a teljes redezettségig midig duplázva k értékét. Legye a rekordok száma. Egy meetbe rekordmozgás va a szétdobásál és az összefésülésél. A meetek száma legfeljebb log. Az időigéy: T log. Külső tárak redezéséek gyorsítása Az log em javítható az összehasolítások miatt. A szorzó kostasokat lehet csökketei. Változó futamhosszak: a file-ba meglévő természetes módo kialakult futamhosszakat vesszük figyelembe. A futamhatárok figyeléséek admiisztrálása bejö, mit további költség. Több részfile haszálata eseté a szétdobás em két, haem több részre törtéik. Külö admiisztráció összefésülésél a kiürült file-ok figyelése. Polifázisú összefésülés alkalmazásakor em folytatjuk végig mide meetbe az összefésüléseket, haem a célfile szerepét midig a kiürült file veszi át és ide kezdjük összefésüli a többit Egy eset polifázisú összefésülésre, amikor kíosa lassú a módszer. A tábla belsejébe a fileok futamszáma szerepel, zárójelbe a futamok mérete. Kezdetbe az első file rekordból áll és egy a futamhossz, a második file 5 rekordból áll és szité egy a futamhossz. meet és futamszám File 3 4 5 6 () 0 (3) 0 (5) 0 5() 4() 3() () () 0 3 0 () 0 (4) 0 (6)