140 likes | 230 Views
Az összehasonlító rendezések 0. alaptétele (magyarázat). LL. Állítás: Egy összehasonlító rendezés maximális összehasonlítás-száma n elemű input esetén legalább log 2 (n!). Bizonyítás. I. Az állítás belátásához egy összehasonlító rendezés döntési fáját kell vizsgálnunk.
E N D
Az összehasonlító rendezések 0. alaptétele (magyarázat) LL
Állítás: Egy összehasonlító rendezés maximális összehasonlítás-száma n elemű input esetén legalább log2(n!).
I. Az állítás belátásához egy összehasonlító rendezés döntési fáját kell vizsgálnunk. Mi is az a döntési fa? Az összehasonlító rendező algoritmus futása során össehasonlításokat végez, mindig két elemet hasonlít össze egymással. Az összehasonlítás eredménye kétféle lehet: A > B vagy A < B. (Feltéve ugyebár, hogy csupa különböző elemeket rendezünk.) Az eredmények alapján felépíthetünk egy bináris fát, melynek csúcsaiba a kérdéseket (miket hasonlítunk össze), leveleibe a végeredményt (a rendezett sorozatot) írhatjuk.
Példa: Buborék rendezés döntési fája 3 elemre (Ismételd át hogyan is működik az.) Rendezendő: A B C Buborék: A és Bösszehasonlítása, majd ha Anagyobb, akkor csere… A ? B A > B B > A
ABC A ? B A < B A > B ABC BAC B ? C A ? C B < C A > C B > C A < C ABC BAC BCA ACB A ? B A ? C B ? A B ? C A < B A < C A > C B < A B < C B > C BCA CBA BAC CAB ACB ABC Lejátszva a teljes rendezést, a következő döntési fát kapjuk. (Levelekben a rendezett sorozat) (Kékkel a sorozat aktuális állapota)
A ? B A < B A > B ABC BAC B ? C A ? C B < C A > C B > C A < C ABC BAC BCA ACB A ? B A ? C B ? A B ? C A < B A < C A > C B < A B < C B > C BCA CBA BAC CAB ACB ABC Vegyük észre, hogy a nyilazott helyeken a kapott válasz már egyértelmű, hiszen ugyanazt a kérdést tettük fel immár másodszor. Ezt a kérdést el is hagyhatnánk, így kapnánk az „okosított” buborék rendező algoritmust. („okosított”, mert nem kérdezi meg ugyanazt kétszer.) ABC
ABC A ? B A < B A > B ABC BAC B ? C A ? C B < C A > C B > C A < C BCA ACB A ? C B ? C BAC ABC A < C A > C B < C B > C BCA CBA CAB ACB Az „okosított” buborék rendezés döntési fája 3 elem esetén:
II. Minket most a rendezés maximális összehasonlítás-száma és az input mérete közötti kapcsolat érdekel. h A maximális összehasonlítás-szám a döntési fa magassága. (Azaz hogy hány kérdést tettünk fel: hány összehasonlítást végeztünk a legrosszabb esetben.) Jelöljük h-val. (Itt h=3)
Az input mérete pedig a következőképpen érzékelhető a döntési fán. Az n elemet n!-képpen lehet különbőző módon sorbarendezni, és bármelyik sorrend esetén algoritmusunk-nak helyes választ kell adnia: kell lennie legalább egy, azt a sorrendet tartalmazó levélnek. (Ugyanazt az eredményt több összehasonlítás-sorozat után is adhatja.) levelek Esetünkben 3!=6, és pont ennyi levél is van.
Könnyen látható, hogy egy h magasságú bináris fának legfeljebb 2h levele van. (Egy teljesnek pont 2h) Most már érezhetjük az összefüggést: A döntési fának legalább annyi levele kell, hogy legyen, hogy az input összes lehetséges permutációja elférjen rajtuk.
Most már érezhetjük az összefüggést: A döntési fának legalább annyi levele kell, hogy legyen, hogy az input összes lehetséges permutációja elférjen rajtuk. Tehát: levélszám ≥ permutációk száma 2h ≥ n! log22h ≥ log2(n!) h ≥ log2(n!) Vagyis: Egy összehasonlító rendezés maximális összehasonlítás-száma n elemű input esetén legalább log2(n!). Az állítást ezzel beláttuk.
Kiegészítés Minimális összehasonlítás-szám különböző n-ekre: • n l := log2(n!) [l] + 1 (ennél nagyobb-egyenlő h) • 1 1 • 2,5850 3 • 4,5850 5 • 6,9069 7 • 9,4919 10 • 21,7911 22 • 61,0774 62 • … Már láttuk, hogy 3 elemet lehet rendezni 3 összehasonlítással. Érdemes elgondolkodni azon, hogy hogyan tudunk 4 elemet 5, illetve 5 elemet 7 összehasonlítással rendezni. 6 elem rendezéséhez viszont már 11 összehasonlítás kell. (Ettől még az alsó becslés helytálló.)
vége Lócsi Levente 2005.03.10.