这是一个关于估计效率背后的原则的问题。在我的一个项目中,我遇到了这种情况:一个函数获取两个正整数并返回两者中的最小值。我想知道我通常使用的这种方法(我计算步数)是否是一种估算效率的准确方法,是否还有其他方法,或者我是否应该始终简单地比较它们的运行速度。
Function(int a, int b)
{
int lowest = a - b; //3 steps, allocating, assigning and calculating
lowest = lowest * lowest / lowest; //3 steps, 2 in calculating, 1 in assigning
//6 steps total
return lowest;
}
Function(int a, int b)
{
int lowest; //1 step in allocating
if(a > b){ // 2 steps, 1 in comparing, 1 in picking the outcome
lowest = b; // 1 step in assigning
// Total 4 steps
}else{
lowest = a; // 1 step in assigning
// Total 4 steps
}
return lowest;
}
在这种情况下,我会选择功能 2,因为它的步骤似乎更少。