Sorozatok összefésülése
Az összefésülés (merging) az a művelet, melynek során két rendezett sorozatból egy harmadikat készítünk, mely a két sorozatnak minden elemét tartalmazza.
Példa: két növekvő sorozat összefésülése növekvő sorrendbe.
5
1 3 5 60 60
^
6
2 3 4 5 5 70
^
az eredmény:
11
1 2 3 3 4 5 5 5 60 60 70
Példa: két növekvő sorozat összefésülése csökkenő sorrendbe.
5
1 3 5 60 60
^
6
2 3 4 5 5 70
^
eredmény:
11
70 60 60 5 5 5 4 3 3 2 1
Implementáció:
Két növekvő sorozatot növekvő sorrendbe fésülünk össze:
| |
Változat:
Tegyük fel, hogy az első sorozat növekvő, a második csökkenő és csökkenő sorrendbe akarunk összefésülni.
| |
Gyakorlatok:
1.
Az A és B növekvő sorrendbe rendezett tömbök az alábbi elemekkel rendelkeznek:
A=(3,20,25,26,2025);
B=(x,y,z).
Ahhoz, hogy a növekvő sorrendbe történő összefésülésük eredményét meghatározzuk, az x-et két darab A-beli elemmel kellett összehasonlítsuk, az y-t egyetlen A-beli elemmel, z-t pedig négy darab A-beli elemmel.
Adjuk meg az x, y és z egy-egy lehetséges értékét!
Megoldás:
x = 10, y = 15, z = 30
A=(3,20,25,26,2025)
^
B=(x,y,z)
^
3 vs. x -> x > 3 kell legyen
20 vs. x -> x < 20 kell legyen
20 vs. y -> x < y < 20 kell legyen
20 vs. z -> z > 20 kell
25 vs. z -> z > 25
26 vs. z -> z > 26
2025 vs. z
jó bármilyen z > 26