7
我怎樣才能找到這個功能的複雜性?Math.Sqrt()的時間複雜度?
private double EuclideanDistance(MFCC.MFCCFrame vec1, MFCC.MFCCFrame vec2)
{
double Distance = 0.0;
for (int K = 0; K < 13; K++)
Distance += (vec1.Features[K] - vec2.Features[K]) * (vec1.Features[K] - vec2.Features[K]);
return Math.Sqrt(Distance);
}
我知道下面的部分是O(1):
double Distance = 0.0;
for (int K = 0; K < 13; K++)
Distance += (vec1.Features[K]-vec2.Features[K])*(vec1.Features[K]-vec2.Features[K]);
但我不能找出的Math.Sqrt()
複雜性是什麼。
只是想知道,不應該爲語句的時間複雜度爲O(n),因爲它有效地迭代數組? – RedLaser
不,它是O(13),數組大小是固定的,所以實際上是O(1)。 – ferit