4

私はウェブを検索し、中央値の中央値アルゴリズムのwikiページにアクセスしました。しかし、私の質問に対する明確な声明を見つけることができないようです:

整数の非常に大きなリスト(サイズがTB)があり、このリストの中央値を分散して見つけたい場合は、リストをさまざまなサイズのサブリストに分割します(または等しいことは実際には重要ではありません)。次に、それらの小さいサブリストの中央値の計算に進み、次にそれらの中央値の中央値を計算して、元の大きいリストの中央値にしますか?

さらに、このステートメントは、k番目の統計のいずれにも正しいですか?この分野の研究等へのリンクに興味があります。

4

2 に答える 2

12

あなたの質問への答えはノーです。

並列設定(分散設定はもちろん実際には違いはありません)でk次統計量(もちろん中央値を含む)を実際に選択する方法を理解したい場合は、私が提案したこの最近の論文を見てください。並列選択のための以前の最先端のアルゴリズムを改善する新しいアルゴリズム:

粗視化マルチコンピュータでの決定論的並列選択アルゴリズム

ここでは、2つの重み付けされた3中央値をピボットとして使用し、5方向の分割を使用してこれらのピボットの周りに分割します。また、MPIを使用してアルゴリズムを実装およびテストしました。これが最悪の場合のO(n)選択アルゴリズムを利用する決定論的アルゴリズムであることを考慮すると、結果は非常に良好 です。ランダム化されたO(n)QuickSelectアルゴリズムを使用すると、非常に高速な並列アルゴリズムが提供されます。

于 2011-12-12T08:52:55.617 に答える
7

整数の非常に大きなリスト(サイズがTB)があり、このリストの中央値を分散して見つけたい場合は、リストをさまざまなサイズのサブリストに分割します(または等しいことは実際には重要ではありません)。次に、それらの小さいサブリストの中央値の計算に進み、次にそれらの中央値の中央値を計算して、元の大きいリストの中央値にしますか?

いいえ。リスト全体の実際の中央値は、必ずしもサブリストの中央値である必要はありません。

中央値の中央値は、ランダムに選択された要素よりも実際の中央値に近いため、クイックセレクトのピボットを適切に選択できますが、より大きなリストの実際の中央値を見つけるには、残りのクイックセレクトアルゴリズムを実行する必要があります。 。

于 2011-12-12T02:25:40.757 に答える