私はいくつかの助けを得ることができるかと思いました。私は2つのソートされた配列の2つの数字が特定の数に加わるかどうかを判断するためのTHETA(n)または線形時間であるアルゴリズムを探したい。2つの要素の合計が特定の数に等しい2つのソートされた配列
例えば、我々は2つのソート配列としましょう:私はXの要素と正確に一定数まで追加Yの要素があるかどうかを決定したいXとY
を、のは、50を言ってみましょう。
これまでのところ、私はこれらのアルゴリズムをPythonで考え出すことができましたが、THETA(n)ではなくTHETA(n^2)の順序であると確信しています。
def arrayTestOne(X,Y):
S =[1 for x in X for y in Y if x+y == 50]
def arrayTestTwo(X,Y):
for x in X:
for y in Y:
if x + y == 50:
print("1")
私はそれが線形時間を壊すループの2倍だと思っていますが、それ以外の2つのリストを反復する方法はありますか?いかなる考えも認められるだろう。ここで
私はあなたにこれについて考える時間を増やすよう勧めます。配列が[1,2、...、10]と[10,20、...、100]であるとします。あなたのアルゴリズムを手で試して、時間を浪費している場所を見つけられるかどうかを見てください。 – Dave