我被要求确定使用简单算法的时间和空间复杂性。问题是我不完全了解这些数字的来源。从示例中我们得到它把加法、减法、除法和乘法计算为基本操作。
在这里,我发布了我的算法的伪代码,它使用我们提供的公式计算标准偏差。
我看到 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;
}