Algoritem za naravno, uravnoteženo, trosmerno zlivanje
Iz E-študij, proste zakladnice študentskega znanja
Ker k navadnemu zlivanju uvedemo čete, to postane naravno zlivanje. Ker uporabimo trakove direktno, to pomeni, da bo to uravnoteženo zlivanje. Ker uporabimo tri trakove za vsako zlivanje, je to trosmerno zlivanje.
Prvi korak:
/ 16;3;7,11
16,4,10,14,7,9,3,2,8,1,5,22,7,11,6,15,21,17 - 4,10,14;2,8;6,15,21
\ 7,9;1,5,22;17
Prvo zlivanje:
16;3;7,11 \ / 4,7,9,10,14,16
4,10,14;2,8;6,15,21 - - 1,2,3,5,8,22
7,9;1,5,22;17 / \ 6,7,11,15,17,21
Drugo zlivanje:
4,7,9,10,14,16 \ 1,2,3,5,8,22 - - 1,2,3,4,5,6,7,7,8,9,10,11,14,15,16,17,21,22 6,7,11,15,17,21 /
Težave tega zlivanja je v tem, da od 2N trakov ob zlivanju naenkrat uporablja največ N+1 trakov. Zato so razvili Algoritem za polifazno urejanje.
Za trosmerno potrebujemo 6 trakov plus vhodni. Zlivanja ne zaznamo. Ok, pa začnimo:
- Vhodne podatke porazdelimo na 3 trakove, pri tem se nam lahko čete tudi zlijejo
- Nato pa zlivamo čete na izhodne trakove in sicer na vsakega enega zaporedno.
- Postopek ponavljamo, dokler ne dobimo samo ena čete na enem traku.