第一種情況:哪些功能運行速度更快?
void lowTermReduction(int numerator, int denominator) {
int gcd = GCD(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
第二種情況:
void lowTermReduction(int numerator, int denominator) {
int gcd = GCD(numerator, denominator);
if (gcd != 1) {
numerator /= gcd;
denominator /= gcd;
}
}
哪一個更高效(快速)?
在第一種情況下,功能總是執行除法,如果該除法爲1並且不會更改numerator
和denominator
中的值。我不知道CPU在12/1還是12/2時速度更快,但我認爲這是完全相同的。
在第二種情況下,相反,當Greater Common Divisor與1不同時,函數僅執行。但在此情況下,它執行邏輯運算if
。
有效率差異?如果是這樣,他們是相關的嗎?
哪一種消耗更少的時間,當你異形它? – 2013-04-30 19:27:25
不管怎麼說,我懷疑它是否重要。將GCD降至1所需的時間將主宰最終檢查所佔用的運行時間。 – Mysticial 2013-04-30 19:28:59
我想說這種差異是可以忽略的,但是第一部分只會是最快的。 – 2013-04-30 19:31:00