2016-01-03 16 views
7

Jak mogę znaleźć złożoność tej funkcji?Złożoność czasowa 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); 
} 

wiem, że poniżej sekcja jest 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]); 

Ale nie mogę dowiedzieć się, co złożoność Math.Sqrt() jest.

+0

Zastanawiasz się, czy nie powinno to oznaczać złożoności O (n), ponieważ skutecznie iteruje po tablicy? – RedLaser

+0

Nie, to O (13), rozmiar tablicy jest stały, więc O (1) faktycznie. – ferit

Odpowiedz

Powiązane problemy