区間[0,1]にN個の点があり、この区間をn個の部分区間に分割したとしましょう。[0、 [xn-1]、[xn-1,1]次に、これらのN点のそれぞれがどのサブ間隔に属するのかを判断する必要があります。この仕事を完了するための最良のアルゴリズムは何ですか?これらのサブ間隔は均等に分配されないが、それらは既知である。 NはO(100万)、nはO(1 k)です。N個の点をn個の区間に入れるのに最も良いアルゴリズムは何ですか
0
A
答えて
1
IFポイントがソートされていない場合は、座標で並べ替えます。
間隔リストを持つポイントリストのマージ(MergeSortのマージアルゴリズムなど)を実行します。 (両方のリストがすでにソートされている場合やO(N + n)
)
複雑さはO(NlogN + N + n)
ある
@Mukul Varshneyのアプローチの複雑O(Nlogn)
と比較して、あなたのケース
1
各区間の下限を0とすると、x1、x2、x3 ....の順番で配列の区間の最初の値(下限)を保持し、バイナリ検索を使用してインデックスnの数よりも多いか少ない。
+0
(あなたが前に述べた0、x1、...、x _の_each_間隔の下限を置くことを推測するのに二番目のテイクが必要でした) – greybeard
+0
@greybeardのコメント –
関連する問題
- 1. n個のセット間の最大交点
- 2. n個の列間でコンテンツを分割する最も良い方法は何ですか?
- 3. n個の配列から最小の "n"個の合計
- 4. ストアN ^(n個の* n)でC
- 5. n個の球の交差に最もよく合う点を見つける
- 6. n個のJMeter
- 7. n個
- 8. アルゴリズムの漸近解析:時間nでソートされたリストnにk個の新しい要素を挿入する方法O(k log k + n)
- 9. 2dでn個の他のオブジェクトで形状をカバーするアルゴリズム
- 10. ExecutorServiceにn個のスレッドとn個の対応するオブジェクトがあります
- 11. SQLiteの最初のn個のレコードを更新するには
- 12. 最後にN個のMongoDB文書を変更するには?
- 13. 上位n個の要素をソート順に保つための最良のデータ構造は何ですか?
- 14. 最後のn個の要素
- 15. 要素をN個のバケットに無作為に入れます
- 16. TreeMapをn個のエントリにトリミングする
- 17. ここで、O(n個の* m)よりも良好にレーベンシュタインアルゴリズムのdamerauバージョンを
- 18. CUDAを使ってM個の要素からN個の最大要素を得るにはどうすればいいですか?N << M?
- 19. オブジェクトのn個の配列の間に相違点を見つける
- 20. n個のペアからn個のペアからk個の別個の要素を抽出する最速の方法R
- 21. 最初のN個のレコードをスライスする前にクエリーセットを逆順に並べるか、最後のN個のレコードをスライスするかを数えますか?
- 22. アルゴリズム:n個の配列(キュー)からk個の数字の最小合計を見つける
- 23. \ rをする\上のRでreadlines nはn個
- 24. n個の素数を出力するアルゴリズムを最適化する方法
- 25. アルゴリズム - ビンパッキング、ビンを配置してn個のオブジェクトをパックする
- 26. KeyValuePair別個の値ごとにn個の結果を取る
- 27. mongodbのnからn個のアイテムを取得する方法
- 28. オーダード・ディクショナリから別のものに最初のN個のキー・ペアを取得
- 29. n個のGPSポイント間の最短距離の計算
- 30. N個のランダムレコードを選択
ための最善のバリアントは、Nの相対的な大きさに少し依存選択し、 n。 1つは他のものよりもはるかに大きいか、またはそれらはほぼ等しいか? – Henry
'xはどの部分区間に属しているのですか? 'という意味ですか? x≤x
greybeard
(I _presume_間隔が均等に分割されていない(xₘ₊1-xₘ= c)) – greybeard