2016-01-03 222 views
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()複雜性是什麼。

+0

只是想知道,不應該爲語句的時間複雜度爲O(n),因爲它有效地迭代數組? – RedLaser

+0

不,它是O(13),數組大小是固定的,所以實際上是O(1)。 – ferit

回答