Radix vissza

Download Report

Transcript Radix vissza

Előrendezéses
edényrendezés – RADIX
„vissza”

Az általános előrendezéses edényrendezés
speciálisan r alapú d jegyű számokra felírt
változata a RAD.

Az algoritmus a kisebb helyiértékektől
kiindulva edényekbe rendezi a bemeneti
adatokat, majd ezeket összefűzi. Ezt a
műveletet jobbról-balra az összes
helyiértékre elvégzi.
Általános algoritmus
S rendezése jobbról-balra,
minden i-edik pozíción a φ
hasítófüggvényt
alkalmazzuk.
Az i-edik pozíción
végrehajtott szétrakásösszefűzés után a sorozat i
szerint rendezett lesz.
Példa RADIX „vissza” algoritmusra
d=3 hosszú bináris számokra (r=2)
Ekkor két tömb segítségével végrehajthatjuk a
rendezést.
„A” tömb tartalmazza kezdetben a számokat
„B” tömbben két szembefordított edény lesz
Az algoritmus során a tömbök szerepe
felcserélődhet, a végén azonban az eredeti
struktúrában jelenik meg az eredmény.
Rendezendő adatok
A
101
001
111
110
010
100
011
1. lépés – rendezés az utolsó jegy
szerint
A
B
101
001
111
110
010
100
011
110
010
100
011
111
001
101

Edény 1
Edény 2
2. lépés – rendezés a második jegy
szerint
B
A
110
010
100
011
111
001
101
100
101
001
011
111
010
110

Edény 1
Edény 2
3. lépés – rendezés az első jegy
szerint
A
B
100
101
001
011
111
010
110
001
010
011
111
110
101
100

Edény 1
Edény 2
4. lépés – a rendezett sorozat
visszahelyezése
B
A
001
010
011
111
110
101
100
001
010
011
100
101
110
111

Eredmény
Rendezett sorozatot kaptunk az alábbi
műveletigénnyel:
T ( n ) = O ( d * |S| )