2016-01-03 19 views
7

मुझे इस फ़ंक्शन की जटिलता कैसे मिल सकती है?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); 
} 

मुझे पता है कि नीचे अनुभाग हे (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]); 

लेकिन मैं समझ नहीं क्या Math.Sqrt() की जटिलता है।

+0

बस सोच रहा है, क्या यह बयान के लिए ओ (एन) की समय जटिलता का नहीं होना चाहिए क्योंकि यह प्रभावी रूप से एक सरणी पर फिर से चलाता है? – RedLaser

+0

नहीं, यह ओ (13) है, सरणी आकार तय है, इसलिए ओ (1) वास्तव में। – ferit

उत्तर

5

आप इसे पर विचार कर सकते हे (1):

दूसरे शब्दों में, Math.Sqrt() एक भी चल बिन्दु मशीन कोड निर्देश के लिए अनुवाद

स्रोत: c# Math.Sqrt Implementation

+0

@ बाथंत हेगाज़ी आपका स्वागत है :) – BlackBear

संबंधित मुद्दे