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. 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. 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.
A B 011 111 101 010 110 001 100
A B 011 010 111 110 101 100 010 001 110 101 001 111 100 011
B A 010 100 110 101 100 001 011 111 111 011 101 110 001 010
A B 100 001 101 010 001 011 010 111 110 110 011 101 111 100
B A 001 001 010 010 011 011 111 100 110 101 101 110 100 111 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.