Come posso trovare la complessità di questa funzione?La complessità temporale di 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);
}
So che la sezione di seguito è 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]);
Ma io non riesco a capire cosa la complessità della Math.Sqrt()
è.
Mi chiedo solo, non dovrebbe essere che l'affermazione sia di una complessità temporale di O (n) in quanto effettivamente itera su un array? – RedLaser
No, è O (13), la dimensione dell'array è fissa, quindi O (1) in realtà. – ferit