入力:(数値の)配列
セット。
各配列内の要素は並べ替えられていますが、配列のセットは必ずしも並べ替えられていません。配列は必ずしも同じサイズである必要はありません。要素の総数はです。A I N
出力:入力のすべての要素のうち最小番目の要素。
この問題の最も効率的なアルゴリズムは何ですか?
たとえば、実行時間を達成することは可能ですか?
入力:(数値の)配列
セット。
各配列内の要素は並べ替えられていますが、配列のセットは必ずしも並べ替えられていません。配列は必ずしも同じサイズである必要はありません。要素の総数はです。A I N
出力:入力のすべての要素のうち最小番目の要素。
この問題の最も効率的なアルゴリズムは何ですか?
たとえば、実行時間を達成することは可能ですか?
回答:
次のように時間と余分なスペースでそれを行うことができます:O (l )
バイナリヒープをフィボナッチヒープに置き換えると、償却済みの時間になると思いますが、実際には、が巨大でない限り、バイナリヒープよりも遅くなります。
フィボナッチヒープ境界が最適であると思います。直観的には、番目に小さい要素を見つけるために少なくとも要素を検査する必要があり、それぞれから少なくとも1つの要素を検査する必要があるためです。配列のソート方法がわからないため、配列はすぐに下限を与え。
これは、STOC '80のFredericksonとJohnsonによる論文Generalized selection and rank (Preliminary Version)によって解決されるようです。
:彼らはの上限および下限を与える いることが判明ℓのログN最もアレイサイズ分布のために。
上限を達成するための実際のアルゴリズムは、以前の論文で明らかに示されてい ます。第13回情報科学およびシステムに関する年次会議、ジョンズホプキンス大学(1979)47-52。