1 / 14

Az összehasonlító rendezések 0. alaptétele (magyarázat)

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.

niyati
Download Presentation

Az összehasonlító rendezések 0. alaptétele (magyarázat)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Az összehasonlító rendezések 0. alaptétele (magyarázat) LL

  2. Állítás: Egy összehasonlító rendezés maximális összehasonlítás-száma n elemű input esetén legalább log2(n!).

  3. Bizonyítás

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

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

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

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

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

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

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

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

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

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

  14. vége Lócsi Levente 2005.03.10.

More Related