数値の平方根を計算するための(ひどい)アルゴリズムに遭遇しました。時間の複雑さについての小さな議論に入りました。私は時間の複雑さはO(n^2)であると主張します。なぜなら、n個の入力に対してn回乗算されるからです。私の友人は、時間の複雑さは実際にはO(n)であると主張する。誰が正当で、なぜですか?数値の平方根を計算するためのこの特定の(悪い)アルゴリズムの漸近的な複雑さは何ですか?
def squareRoot(x):
if x<0:
return "undefined"
elif x==0:
return 0
for i in range(0,x):
if(i*i)==x:
return i
あなたの主張に「n」とは何ですか?通常はアルゴリズムで処理される要素の数ですが、ここではそうではありません。 –