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.
Zastanawiasz się, czy nie powinno to oznaczać złożoności O (n), ponieważ skutecznie iteruje po tablicy? – RedLaser
Nie, to O (13), rozmiar tablicy jest stały, więc O (1) faktycznie. – ferit