我有一个用Java编写的算法,希望提高效率。我认为可以提高效率的一部分是找到3个数字中的最小值。目前,我正在使用以下Math.min方法:
Math.min
double smallest = Math.min(a, Math.min(b, c));
效率如何?用如下的if语句替换会更有效:
double smallest; if (a <= b && a <= c) { smallest = a; } else if (b <= c && b <= a) { smallest = b; } else { smallest = c; }
或者如果有其他方法更有效
我想知道是否值得更改当前使用的内容?
任何速度的提高都会大有帮助
不,这真的 不 值得更改。摆弄这样的微优化时将要获得的那种改进将是不值得的。如果min调用足够的函数,甚至方法调用成本也将被删除。
min
如果你有你的算法有问题,最好的办法是寻找到宏观的优化(“大局”的东西一样算法选择或调整) -你一般会得到 很多 更好的性能改善那里。
您关于删除Math.pow带来的改进的评论可能很正确,但这是因为这是一项相对昂贵的操作。Math.min在成本方面甚至都不会接近。
Math.pow