Upload
braima
View
44
Download
0
Embed Size (px)
DESCRIPTION
Edényrendezés - RADIX „vissza” - bináris számokra. Algoritmusok és adatszerkezetek 2. Újvári Zsuzsanna. Bevezető 1. Az edényrendezések bináris számokon dolgozó változatait RADIX rendezéseknek nevezzük. - PowerPoint PPT Presentation
Citation preview
Edényrendezés - RADIX „vissza” - Edényrendezés - RADIX „vissza” - bináris számokrabináris számokra
Algoritmusok és adatszerkezetek 2.Algoritmusok és adatszerkezetek 2.Újvári ZsuzsannaÚjvári Zsuzsanna
Bevezető 1.Bevezető 1. Az edényrendezések bináris számokon dolgozó
változatait RADIX rendezéseknek nevezzük. A RADIX vissza rendezésnél abból indulunk ki, hogy minden fázisban két edényre van szükségünk (A és B), és
ezek együttes mérete mindig megegyezik az eredeti inputsorozat méretével. Tehát, ha az eredeti sorozatunk
egy tömb, vegyünk fel egy ugyanakkora méretű segédtömböt, és az első fázisban pakoljuk át ide az elemeket, majd a második fázisban vissza az eredeti tömbbe, és így tovább, tehát a páratlan fázisokban a
segéd-, a páros fázisokban pedig az eredeti tömböt töltjük fel.
Bevezető 2.Bevezető 2. A pakolás történjen a következőképpen: 1. Olvassuk be az adatokat egymás után a kezdő tömbből, és amelyiknek az
utolsó jegye 0, azt rakjuk a segédtömb elejére egymás után, amelyiknek az utolsó jegye 1, azt pedig rakjuk a tömb végére egymás elé.
2. Ezután a segédtömbben a beolvasás szerinti sorrendben foglalnak helyet a 0-ra végződő számok, majd ezt követik a beolvasás szerinti fordított sorrendben az 1-re végződőek. A tömb két részének határindexét tároljuk el.
3. Ismételjük meg az előbbi lépéseket az utolsótól visszafelé az összes többi számjegyre, azzal a módszerrel, hogy a tömbből elölről olvasunk be, amíg el nem értük az előbb eltárolt indexet, majd ezután a végétől visszafelé olvasunk be a határig.
4. Miután az első számjegyre is lefuttattuk a rendezést, az eredményt helyezzük el a másik tömbben úgy, hogy az utoljára eltárolt indexig előrefelé olvasunk be a tömbből, majd ezt követően a végétől visszafelé olvasunk be a határig.
AA BB
011011111111101101010010110110001001100100
AA BB
010111111111101011010100111100000011101000 010111
111111101011
010100111100
000011101000
BB AA
001100111100110000001111111111110011000011 001100
111100001111
110000110011
111111000011
AA BB
110000110101000101001010111010001111111111 110000
110101111010
000101001010
111111001111
BB AA
001001010010011011111111110110101101100100 111111
110110101101
001001010010
100100011011
Eredményként egy rendezett sorozatot kapunk a következő műveletigénnyel: T(n) = O(d*|S|).
Köszönöm a figyelmet
2011.02.25.