8. rendezés - uni-obuda.hu

24
8. Rendezés [email protected]

Upload: others

Post on 26-Oct-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 8. Rendezés - uni-obuda.hu

8. Rendezé[email protected]

Page 2: 8. Rendezés - uni-obuda.hu

Buborékrendezés• O(n2)

Dr. Sergyán Szabolcs: Algoritmusok, adatszerkezetek I. jegyzet, 2014, ÓE-NIK

Page 3: 8. Rendezés - uni-obuda.hu
Page 4: 8. Rendezés - uni-obuda.hu

Párhuzamos buborékrendezés• Egy iteráción belül két elem

vizsgálatára kerül sor: azonban ahogy „halad felfelé a buborék”, más iterációk is elkezdődhetnek

• Pipeline-szerű megvalósítás

Page 5: 8. Rendezés - uni-obuda.hu

Páratlan-páros felbontás• Más megközelítés: az összehasonlítások átcsoportosítása úgy, hogy a lehető legtöbb

független legyen

• Páratlan-páros felbontás, két fázissal

• Páratlan fázis

• Páratlan sorszámú szálakhoz tartozó elemek összehasonlítása és cseréje a jobb szomszédjukkal

• Páros fázis

• Páros sorszámú szálakhoz tartozó elemek összehasonlítása és cseréje a jobb szomszédjukkal

Page 6: 8. Rendezés - uni-obuda.hu

Páratlan-páros

Page 7: 8. Rendezés - uni-obuda.hu

Páratlan-páros• N/2 páratlan-páros lépés után véget ér

• O(N)

• Ha a processzorok száma megegyezik az elemszámmal

Page 8: 8. Rendezés - uni-obuda.hu

„Oszd meg és uralkodj”Az „Oszd meg és uralkodj!” elvű algoritmusok mindig három fázisból állnak. Elsőlépésként a megoldandó problémát felosztják kisebb részproblémákra. Például, harendezni szeretnénk egy tömböt, akkor nem a teljes tömb rendezésére koncentrálnak,hanem a tömböt kettő vagy több résztömbre osztják. Második fázisként „uralkodnak” arészproblémákon, azaz a részproblémákat megoldják. Ez a megoldás úgy történik, hogya teljes problémát megoldó algoritmust alkalmazzák a kisebb részproblémára rekurzívmódon. Majd miután az egyes részproblémák már megoldottak, akkor harmadiklépésként a megoldott részproblémák egyesítése következik.

Dr. Sergyán Szabolcs: Algoritmusok, adatszerkezetek I. jegyzet, 2014, ÓE-NIK

Page 9: 8. Rendezés - uni-obuda.hu
Page 10: 8. Rendezés - uni-obuda.hu

Mergesort• „Összefésülő rendezés”

• O(NlogN)

Page 11: 8. Rendezés - uni-obuda.hu

Párhuzamos Mergesort

Page 12: 8. Rendezés - uni-obuda.hu

Párhuzamos Mergesort• 2 log N lépés

• Azonban az egyes lépések lehet hogy nem elemi műveletekből állnak

• Az Összefésül lépésszáma a résztömbök elemszámától függ

Page 13: 8. Rendezés - uni-obuda.hu

Quicksort

A gyorsrendezés is egy „Oszd meg és uralkodj!”elven működő rendező algoritmus, de itt nemtudjuk előre, hogy a rendezendő tömböt milyenméretű résztömbökre osztjuk fel. Tehát ebben azesetben nem lesz igaz, hogy a tömböt mindigfelezzük, ahogy ezt a felező maximumkiválasztásnálvagy az összefésülő rendezésnél tettük.

Dr. Sergyán Szabolcs: Algoritmusok, adatszerkezetekI. jegyzet, 2014, ÓE-NIK

O(NlogN) – O(N2)

Page 14: 8. Rendezés - uni-obuda.hu

Párhuzamos Quicksort

Page 15: 8. Rendezés - uni-obuda.hu

Párhuzamos Quicksort• Az első lépés egy szálon történik

• A részfeladatokból álló bináris fa nem kiegyensúlyozott

• A pivot kiválasztása kulcsfontosságú

• Legrosszabb esetben a futásidő megegyezik a szekvenciális megvalósítású, legrosszabb esettel: O(N2)

Page 16: 8. Rendezés - uni-obuda.hu

„Oszd meg és uralkodj”• A párhuzamos „Oszd meg és uralkodj!” elvű megvalósítások N processzor esetén

mind alacsony processzor-kihasználtsággal rendelkeznek, így alacsony a hatékonyság

• Ez igaz a Mergesortra és a Quicksortra is

Page 17: 8. Rendezés - uni-obuda.hu

Bitonikus sorozatok• Tegyük fel, hogy a sorozat elemei a következőképp viszonyulnak egymáshoz:

• azaz, az elemek i. elemig növekvő, ezután csökkenő sorba vannak rendezve

• A bitonic tulajdonság akkor is fennáll, ha a fenti feltétel elérhető az elemek shiftelésével

Page 18: 8. Rendezés - uni-obuda.hu

Bitonikus sorozatok• Ha egy bitonikus tulajdonsággal rendelkező sorozaton összehasonlítjuk (és cseréljük)

az

A[i] A[i+n/2]

• elemeket, akkor az eredmény két bitonikus tulajdonságú sorozat lesz, ahol az első sorozat elemei kisebbek mint a második sorozat elemei

Page 19: 8. Rendezés - uni-obuda.hu

Bitonikus sorozat rendezése• A feltételes csere hatására a kisebb

elemek balra, a nagyobbak jobbra kerülnek

• Rendezés

• Ha adott a bitonikus tulajdonságú sor, a lépéseket rekurzívan hívva rendezést hajtunk végre

Page 20: 8. Rendezés - uni-obuda.hu

Bitonikus Mergesort• A kiindulási elemek sorozata valószínűleg nem bitonikus tulajdonságú

• Bármely két elem párban bitonikus tulajdonságú sort alkot

• Két sor összekapcsolásával, ahol az előbbi növekvő, utóbbi csökkenő, bitonikussorozatot kapunk

Page 21: 8. Rendezés - uni-obuda.hu

Bitonikus Mergesort

Page 22: 8. Rendezés - uni-obuda.hu

Bitonikus Mergesort• O(log2N)

Page 23: 8. Rendezés - uni-obuda.hu

Összefoglalás• Buborékrendezés

• Párhuzamos ötlet

• Páratlan-Páros felbontás

• Divide and Conquer

• Mergesort

• Quicksort

• Bitonic Mergesort

Page 24: 8. Rendezés - uni-obuda.hu

Források• Clay Breshears: The Art of Concurrency, Chapter VIII

• Barry Wilkinson, Michael Allen: Parallel Programming, Chapter 10

• Dr. Sergyán Szabolcs: Algoritmusok, adatszerkezetek I. jegyzet, 2014, ÓE-NIK