K個のN個の要素の並べ替えられた配列がある場合、k個の並べ替え済み配列をマージする - 2つの解を比較する
[0, 1, 2]
[1, 6, 8]
[10, 11, 12]
私はその後、O(KNの*ログ(KN)の各時間を最小に取り戻す、リストとそのすべての要素を循環し、ヒープにそれらを挿入することによって、それらをマージするヒープを使用することができることを知っています)。
私はインターネット上でチェックし、もう1つの一般的な解決策は、K個の要素だけの最小ヒープを使用し、ヒープにKリストのすべての最初の項目を挿入し、次に最小値を取得して、その最小要素を所有していた。
より効率的なメモリ要件(2番目のケースではO(K))とは別に、2番目の方法は時間的に効率的ですか?
オプションのボーナスポイント:上記よりもさらに優れたアルゴリズムがありますか?
お返事ありがとうございます! k-wayマージが遅くなることはありませんか?あなたは常に各段階でK比較を行う必要があるでしょう(部分的にソートされたヒープツリーとの比較が少ない) – Dean
O(KN)ソリューションを説明できますか? 私はあなたのことを理解していないかもしれませんが、次の要素を選択するとO(K)時間かかるので、O(K^2 * N)の解決策になります。 – alper
@alperあなたが正しいです、私は次の要素を選ぶコストを考慮していませんでした:/私は私の答えを更新します。しかし、とにかくヒープを使用した場合、それを構築するためのO(KN)コストも支払わなければなりません。結局のところ、最善の選択肢は、K –