Stream merge

From Rosetta Code
Revision as of 09:05, 15 June 2016 by rosettacode>Cblp
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.

Shell

   sort --merge source1 source2 sourceN > sink