假設(shè)我們現(xiàn)在有算法 A 和算法 B ,它們都能解決同一問(wèn)題,現(xiàn)在需要對(duì)比這兩個(gè)算法的效率。最直接的方法是找一臺(tái)計(jì)算機(jī),運(yùn)行這兩個(gè)算法,并監(jiān)控記錄它們的運(yùn)行時(shí)間和內(nèi)存占用情況。這種評(píng)估方式能夠反映真實(shí)情況,但也存在較大局限性。
一方面,難以排除測(cè)試環(huán)境的干擾因素。硬件配置會(huì)影響算法的性能表現(xiàn)。比如在某臺(tái)計(jì)算機(jī)中,算法 A 的運(yùn)行時(shí)間比算法 B 短;但在另一臺(tái)配置不同的計(jì)算機(jī)中,我們可能得到相反的測(cè)試結(jié)果。這意味著我們需要在各種機(jī)器上進(jìn)行測(cè)試,統(tǒng)計(jì)平均效率,而這是不現(xiàn)實(shí)的。
另一方面,展開(kāi)完整測(cè)試非常耗費(fèi)資源。隨著輸入數(shù)據(jù)量的變化,算法會(huì)表現(xiàn)出不同的效率。例如,在輸入數(shù)據(jù)量較小時(shí),算法 A 的運(yùn)行時(shí)間比算法 B 更少;而輸入數(shù)據(jù)量較大時(shí),測(cè)試結(jié)果可能恰恰相反。因此,為了得到有說(shuō)服力的結(jié)論,我們需要測(cè)試各種規(guī)模的輸入數(shù)據(jù),而這需要耗費(fèi)大量的計(jì)算資源。
更多建議: