Wie finde ich die Komplexität dieser Funktion?Zeitkomplexität von 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);
}
Ich weiß, dass der unter Abschnitt 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]);
Aber ich kann nicht herausfinden, was die Komplexität der Math.Sqrt()
ist.
Nur wundernd, sollte das nicht für eine Aussage Komplexität von O (n) sein, da es effektiv über ein Array iteriert? – RedLaser
Nein, es ist O (13), Array-Größe ist fest, also O (1) tatsächlich. – ferit