Stream merge

From Rosetta Code
Revision as of 08:54, 15 June 2016 by rosettacode>Cblp (Created page with "{{task}} == Description == === 2-stream merge === Read two sorted streams of items from external source (e.g. disk, or network), and write one stream of sorted items to ext...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Task
Stream merge
You are encouraged to solve this task according to the task description, using any language you may know.

Description

2-stream merge

Read two sorted streams of items from external source (e.g. disk, or network), and write one stream of sorted items to external sink.

Common algorithm: keep 1 buffered item from each source, select minimal of them, write it, fetch another item from that stream from which the written item was.

N-stream merge

The same as above, but reading from N sources.

Common solution: same as above, but keep buffered items and their source descriptors in a heap.