問題タブ [lower-bound]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
551 参照

algorithm - M が最大である場合のすべての比較ベースの並べ替えアルゴリズムの時間計算量の下限 Ω(nlogn)

n 個の要素 [1,...,n] を持つ配列の最大要素 M が与えられた場合、すべての比較ベースの並べ替えアルゴリズムの時間計算量の下限 Ω(nlogn) はどのように影響を受けますか? 配列の最大要素 M が与えられていることを強調しなければなりません。

0 投票する
1 に答える
3182 参照

java - Java ライブラリには、C++ の std::lower_bound() 、 std::upper_bound() などの関数がありますか?

Java で同じことを達成するための他の選択肢はありますか? C++ では、これらの素晴らしいメソッドを使用して、作業を楽にすることができます。Javaでも可能ですか?私の唯一の目的は、シンプルでクリーンで、エラーが発生しにくいコードを書くことです。

0 投票する
1 に答える
1129 参照

c# - C# ジェネリックの下限制約 "where MySubClass : T" (Java の "super")

<X super MySubClass>C# に Java の一般的な制約と同等のものがあるかどうか疑問に思っています。

上限を指定するには を使用できclass Foo<T> where T : MySuperClass { ... }ますが、ジェネリック パラメーターの下限を指定するにはどうすればよいでしょうか。


同様の結果を得るにはいくつかの方法がありますが、まだ完璧なものを見つけていません。

  1. 2 番目の汎用パラメーターを使用しますが、呼び出し元は実際の下限のサブクラスを指定できます。

    /li>
  2. これは拡張メソッドで使用されることがあるため、拡張メソッドのパラメーターUはクラスのパラメーターのスーパークラスになるように制限されますT

    /li>
  3. インターフェイスでバリアンスを使用しますが、これを使用してジェネリック パラメーターの下限を指定できるかどうかはわかりません。

0 投票する
4 に答える
697 参照

c++ - std::map に find/lower_bound のオーバーロードがなく、std::list に sort のオーバーロードがないのはなぜですか?

によって提供される対数の代わりに線形時間がかかるため、std::find(some_map.begin(), some_map.end())orを使用しないでください。同様のことが で発生します:ソート用の関数がありますが、イテレータはランダム アクセスではないため、を呼び出すことができません。std::lower_boundsome_map.lower_boundstd::liststd::list::sortstd::sort(some_list.begin(), some_list.end())

ただし、std::swapたとえば、 には標準コンテナーのオーバーロードがあるため、 の呼び出しはswap(some_map, other_map)O(n) ではなく O(1) を取ります。C++ 標準がマップとセットlower_boundの特殊なバージョンを提供しないのはなぜですか? find深い理由がありますか?

0 投票する
1 に答える
1964 参照

c++ - C ++でソートされたベクトルの範囲[x、y]を検索する[lower_bound()とupper_bound()を使用]

並べ替えられたベクトルの配列がありますが、

vector< int> b[1000009];

ここで、行 b[factor] で x と y の間の範囲を検索する必要があります。
'factor'、'x'、'y' はすべて整数です。
私は次のアプローチを使用しました:

しかし、このアプローチでは常に正しい答えが得られるわけではありません。それに加えて、同じことを達成するためにいくつかのコンパレータ関数を使用したいと思います。lower_bound()upper_bound( ) を使用するのはこれが初めてです。そこで、ここでコンパレータ機能を実装する方法を教えてください。

0 投票する
2 に答える
1361 参照

c++ - upper_bound/lower_bound function in C++

I'm trying to find the upper and lower bounds of my vector (vector possible) using these functions. The struct data holds 3 strings and I'm using string date for comparison.

but by doing that, the compiler is displayng the following message:

whats the proper way to use these functions?

0 投票する
1 に答える
84 参照

scala - 「下限」は型の分散を逆にしますが、なぜですか?

scala specificationには、分散と下限に関する記述があります:

型宣言または型パラメーターの下限の分散位置は、型宣言または型パラメーターの分散位置の反対です。

44ページにあります。

なんとなくわかるのですが、うまく説明できません。それについて詳しく説明していただけますか?

0 投票する
10 に答える
19343 参照

c++ - std::lower_bound と std::upper_bound の根拠は?

STL は二分探索関数 std::lower_bound と std::upper_bound を提供しますが、私はそれらのコントラクトが完全に不可解に見えるため、それらが何をするのか思い出せなかったので、それらを使用しない傾向があります。

名前を見るだけで、「lower_bound」は「最後の下限」、
つまり、指定された val (存在する場合) <= であるソートされたリストの最後の要素の略であると推測できます。
同様に、「upper_bound」は「最初の上限」、
つまりソートされたリストの最初の要素で、指定された val (存在する場合) >= の略であると思います。

しかし、ドキュメンテーションによると、彼らはそれとはかなり異なることを行っているとのことです。ドキュメントを言い換えると:
- lower_bound は >= val で
ある最初の要素を見つけます - upper_bound は > val である最初の要素を見つけます

したがって、lower_bound は下限をまったく検出しません。最初の上限を見つける!? そして upper_bound は、最初の厳密な上限を見つけます。

これって意味あるの??どのように覚えていますか?