並べ替えられた配列の和集合で選択:既知ですか?


12

次のアルゴリズム/問題の参考文献を探しています。「BiSelect」、「t-ary Select」、または「Select in Union of Sorted Arrays」という名前を付けましたが、別の名前で以前に導入されたと思いますか?

問題

次の問題を考慮してください。

与えられたkの互いに素なソートされたアレイA1,,Ak、各サイズのn1,,nk、及び整数t[1..ni]であるもの、tそのソート組合番目の値 iAi

解決策

k = 2 k = 2 A 1 [ t / 2 ] A 2 [ t / 2 ] A 1 [ t / 2 .. t ] A 2 [ 1 .. t / 2 ] A 1 [ 1 .. t / 2 ] A 2O(lgmin{n1,n2,t})k=2k=2A1[t/2]A2[t/2]A1[t/2..t]A2[1..t/2]A1[1..t/2]A2[t/2..t]t/2n1n2はより小さい)。t

時間で実行されているわずかにより洗練されたアルゴリズムにこの一般化の値が大きいため値の中央値計算に基づいて、するための: 最小要素は、が中央値よりも小さい配列でさらに無視でき、のランクの要素はでさらに無視できます他の配列。各繰り返しでが半分になります中央値ではコスト)。O(klgt)kAi[t/k]i[1..k]t/kk/2Ai[t/k][tt/k..]k/2tO(k)

参照?

私は自分の解決策に満足していますが、問題(およびその解決策)はすでにわかっていると思います。これは、中央値を計算するための線形時間アルゴリズムに関連しています(サイズグループをソートし、それらの中央の中央値で再帰する)が、少し一般的です。私はオーフスのマダルゴ(デンマーク)にあるいくつかの大学に質問し、その後、ワークショップStringology(ルーアン)にあるいくつかの大学に成功しませんでした。5

動機

この問題の解決策には、配列の遅延データ構造への応用があります(実際、並べ替えられた配列の和集合の遅延データ構造の演算子と見なすことができます)。より複雑な方法で、最適なプレフィックスのないコードの適応計算に。

回答:


2

1982年にフレデリクソンとジョンソンが説明したアルゴリズムは、すべてのセットが同じサイズであると見なします。彼らはまた、ソートされたセットのさまざまなサイズを活用する最適なソリューションを1980年に説明しました。このアルゴリズムの複雑さはます。O(k+i=1klogni)

参照

グレッグN.フレデリクソンとドナルドB.ジョンソン。1980年。一般化された選択とランキング(暫定版)。第12回コンピューティング理論に関する年次ACMシンポジウムの議事録(STOC '80)。ACM、ニューヨーク、ニューヨーク、米国、420-428。DOI = 10.1145 / 800141.804690 http://doi.acm.org/10.1145/800141.804690


20

フレデリクソンとジョンソンは80年代に最適な結果を得ました。ましょう、その後、アルゴリズムはであなたの問題を解決して存在するO K + Pのログトンp=min(k,tO(k+plogtp)

参照

GN Frederickson、DB Johnson「x + yでの選択とランキングの複雑さ、およびソートされた列を持つマトリックス」J. Comput。System Sci。、24(2)(1982)、pp。197–208


0

同じ量の並列性を維持するために、異なるスレッドからの2つのソートされた配列のマージを2つのスレッドに分割する必要があるため、k = 2のケースはパラレルマージソートで発生します。この宿題ソリューションは1つのリファレンスです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.