Algorithm for N-way merge で提案されているソリューションの 1 つについて質問があります。
メンバー aioobe が提案したソリューションは次のとおりです。
1. Create a priority queue
2. Iterate through each file f
enqueue the pair (nextNumberIn(f), f) using the first value as priority key
3. While queue not empty
1. dequeue head (m, f) of queue
2. output m
3. if f not depleted
1. enqueue (nextNumberIn(f), f)
ステップ 2 と 3 が完全に理解できませんでした。ステップ 2 では、すべてのファイルの内容を優先キューに読み込む必要がありますか? その場合、メモリは問題になりませんか?
ステップ 3 で、3.3 を理解できませんでした (f が枯渇していない場合はキューに入れます)。誰かまたはOP(aioobe)がここでこれを理解するのを手伝ってくれませんか。どうもありがとう。