拡張メソッド(LINQ)を使用しません。私は残念ながら.NET 2.0に制限されています。 (ええ、それは吸う)Generic SortedList、検索キーよりも大きい最初の要素のインデックスを検索する方法は?
O(log(n))の近くを探しています。
ありがとうございました。
拡張メソッド(LINQ)を使用しません。私は残念ながら.NET 2.0に制限されています。 (ええ、それは吸う)Generic SortedList、検索キーよりも大きい最初の要素のインデックスを検索する方法は?
O(log(n))の近くを探しています。
ありがとうございました。
特定のキーよりも大きい最初のキーを見つけるには、キーのリストSortedList<T>.Keys
を使用し、キー上でBinary SearchまたはInterpolation Searchを実行します。これにより、O(log(n))
が得られます(MSDNは、キールックアップがO(1)
であると述べています)。
はい!検索キーより大きい第1キー、または検索キーよりも小さい第1キー。ありがとうございます。 – Newbie
バイナリでO(n log n)ルックアップを検索します。
http://en.wikipedia.org/wiki/Binary_searchを参照してください。私はあなたがそれを必要としているとは想像できません。 – Brian
項目アクセスがO(1)の場合、バイナリ検索はO(log(n))です。 –
ものはオーデルのOにある検索(ログn)バイナリサーチものは順序O(n)は線形ではない場合のために
検索。物事が整っていないとうまくできない。
これを何度も何度もやってキャッシュしてしまうのでなければ、順序で値を並べるという考え方はO(n * log(n))です。線形検索を使用してください。
(キーではなく値を検索することに興味があったと思います)
私は宿題を嗅ぐ。 – dss539
dss539:StackOverflow FAQを読んでください。宿題を無視してはならないと明言しています。 – TheTXI
私はそれがホーマーワークでしたが、いいえ、実際の仕事はここです。 – Newbie