binary-search

    13

    2答えて

    ご利用条件を誤っている場合は、事前にお詫び申し上げます。 私はdtype'<f16, |S30'でソートされた配列を持っています。最初のフィールドにsearchsortedを使用すると、実際には遅くなります(300万アイテムで約0.4秒)。これは、普通のPythonのタプルリストでも同じことをするのに、bisectよりもはるかに長いです。 %timeit a['f0'].searchsorted(

    9

    8答えて

    ソートされた番号のリストが与えられていれば、与えられた番号よりも大きい最小の番号を見つける必要があります。このリストを考えてみましょう: arr=[1,2,3,5,7,11,101,131,151,181,191,313,353,373,383] は、私の方法は、353と353を返す必要があり、指定された数はその後320であると言う320 よりも大きい最小の数である私は少し修正を使用しようとし

    23

    3答えて

    私は>>>がオーバーフローを修正していることを理解しています.2つの大きな正のロングを追加すると、負の数でエンディングすることがあります。誰かがこのビットシフトが魔法のようにオーバーフローの問題を解決する方法を説明できますか?そしてそれは>>とどう違うのですか? マイ不審:私はそれは私達が余分なスペースを持っていた場合、オーバーフローが右の数ですが、行っておりませんので、それが負になるように、Ja

    9

    7答えて

    バイナリ検索は、再帰的、反復的、条件付きなど、さまざまな方法で実装できます。これは反復的な実装であり、バグが含まれています。 public class BinSearch { static int search(int [] A, int K) { int l = 0; int u = A. length -1; int m;

    10

    3答えて

    monotonically増加するシーケンスの最大値または最小値を見つけることは、O(log n)で実行できます。 しかし、このようなシーケンスに数値が存在するかどうかを確認したい場合は、これもO(log n)で行うことができますか? 私はそれが可能ではないと思います。この例を考えてみましょう:1 4 5 6 7 10 8 3 2 0 この例では、シーケンスに '2'が含まれているかどうかを調べる

    7

    4答えて

    オブジェクトのリストがソートされていて、オブジェクトの最初のオカレンスと最後のオカレンスを探したいと思います。 C++では、std :: equal_range(またはlower_boundとupper_boundを1つだけ使用する)を簡単に使用できます。例えば :Javaでは bool mygreater (int i,int j) { return (i>j); } int main()

    20

    1答えて

    パンダのドキュメントから、私はその一意のインデックスを収集して、特定の操作を効率的にし、一意でないインデックスが許容されることがあることを時折認めます。 外部からは、一意でないインデックスが何らかの形で利用されるようには見えません。たとえば、次のようix問合せは、それが全体のデータフレームにスキャンしているように見えるということは十分に遅い In [23]: import numpy as np

    5

    3答えて

    この問題を解決するのは苦労しています。 A[1..n] is an array of real numbers which is partially sorted: There are some p,q (1 <= p <= q <=n) so: A[1] <= ... <= A[p] A[p] >= ... >= A[q] A[q] <= ... <= A[n] How can we

    9

    3答えて

    2つの時間の複雑さに悩まされています。ソートされた配列でバイナリ検索を行うにはO(logN)です。ソートされていない配列を検索するには、最初にソートする必要があります。そうすれば、O(NlogN)になります。だから、私たちはO(N)として複雑さを与えるバイナリ検索を実行できますが、O(NlogN)である可能性があると読んでいます。どちらが正しい?

    9

    4答えて

    私はナットを運転している簡単な作業であると思われるものに取り組んでいます。あなたがプログラミング上の挑戦を夢中にしているならば、読んでください。 数字の範囲を取りたいと思っています。 [1:20]、バイナリ・セーチ・アルゴリズムに似たメカニズムを使って値を出力します。したがって、まず最初に最も低い値(この場合は1)を入力し、次に中間値(この場合は10)を印刷し、その範囲を四半期に分割し、その値を1