Bu işlevin karmaşıklığını nasıl bulabilirim?Math.Sqrt() zaman karmaşıklığı?
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);
}
aşağıda bölüm Ç (1) olduğunu biliyoruz:
double Distance = 0.0;
for (int K = 0; K < 13; K++)
Distance += (vec1.Features[K]-vec2.Features[K])*(vec1.Features[K]-vec2.Features[K]);
Ama Math.Sqrt()
karmaşıklığı ne olduğunu çözemiyorum.
Sadece merak ediyorum, bu ifade için O (n) 'nin bir zaman karmaşıklığı, bir dizi üzerinde etkili bir şekilde yinelendiği için değil midir? – RedLaser
Hayır, O (13), dizi boyutu sabit, yani O (1) aslında. – ferit