単純なアルゴリズムの時間と空間の複雑さを使用するかどうかを決定するように求められます。問題は、数字がどこから来ているのか完全には理解していないということです。例から、加算、減算、除算、乗算をプリミティブ演算としてカウントすることが提供されました。
ここでは、提供された式を使用して標準偏差を計算するアルゴリズムの擬似コードを投稿しています。
2 *(n-1)の加算記号、1つの除算記号、2つの乗算記号、1つの減算記号が表示されます。
時間計算量のためにここで他に何を数えなければなりませんか?そして、スペースの複雑さをどうするか?
// X is passed array, and N is number of elements in array.
Algorithm calculateStandardDeviation(X, N)
{
private double arraySum;
private double arrayMean;
private double xi2;
private double standardDeviation;
foreach (arrayValue in X)
{
arraySum = arraySum + arrayValue;
}
arrayMean = sum / N;
foreach (arrayValue in X)
{
xi2 = xi2 + Math.Pow(arrayValue, 2);
}
standardDeviation = Math. Sqrt(((1/N) * () * xi2) - Math.Pow(arrayMean, 2));
return standardDeviation;
}