8. rendezés - uni-obuda.hu
Post on 26-Oct-2021
5 Views
Preview:
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