8. rendezés - uni-obuda.hu

Post on 26-Oct-2021

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

8. Rendezéskertesz.gabor@nik.uni-obuda.hu

Buborékrendezés• O(n2)

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

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

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

Páratlan-páros

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

„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

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

• O(NlogN)

Párhuzamos Mergesort

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

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)

Párhuzamos Quicksort

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)

„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

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

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

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

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

Bitonikus Mergesort

Bitonikus Mergesort• O(log2N)

Összefoglalás• Buborékrendezés

• Párhuzamos ötlet

• Páratlan-Páros felbontás

• Divide and Conquer

• Mergesort

• Quicksort

• Bitonic Mergesort

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

top related