任意の数のソート済みリストを 1 つのソート済みリストにマージするアルゴリズムを実装します。目的は、好きな言語で最小の作業プログラムを作成することです。
例えば:
input: ((1, 4, 7), (2, 5, 8), (3, 6, 9))
output: (1, 2, 3, 4, 5, 6, 7, 8, 9)
input: ((1, 10), (), (2, 5, 6, 7))
output: (1, 2, 5, 6, 7, 10)
注: 入力リストを連結してから言語提供の並べ替え関数を使用するソリューションは、ゴルフの精神に沿わないため、受け入れられません。
sorted(sum(lists,[])) # cheating: out of bounds!
他のものとは別に、アルゴリズムははるかに高速である必要があります (ただし、そうである必要はありません)。
言語、弱点、文字数を明確に述べてください。カウントには意味のある文字のみを含めますが、芸術的/読みやすくするためにコードに空白を自由に追加してください。
物事を整理するために、「改訂」ごとに新しい回答を作成するのではなく、コメントで改善を提案するか、必要に応じて回答を編集してください。
編集: この質問を再度送信する場合は、「ソートを提供する言語なし」ルールを「すべてのリストを連結せずに結果をソートする」ように拡張します。concatenate-then-sort を行う既存のエントリは、実際には非常に興味深くコンパクトであるため、それらが違反するルールをさかのぼって導入することはしませんが、新しい提出物でより制限的な仕様に自由に取り組んでください。
Python でソートされた 2 つのリストを結合することに触発されました