gpt4 book ai didi

java - 更新最小变量 : min(a, b) 与 if 语句

转载 作者:行者123 更新时间:2023-11-29 03:13:01 26 4
gpt4 key购买 nike

跟踪列表中最小值的更好做法是什么:

int minVal = a[0];
for (int i = 1; i < a.length; i++) {
minVal = Math.min(minVal, a[i]);
}

int minVal = a[0];
for (int i = 1; i < a.length; i++) {
if(a[i] < minVal)
minVal = a[i];
}

虽然第一个代码看起来更容易阅读,但第二个代码可能更有效率?

什么是课本方式?

最佳答案

这是 Math.min 的实现:

public static int min(int a, int b) {
return (a <= b) ? a : b;
}

条件运算符解析为与 if 语句几乎相同的机器代码;对局部变量的赋值实际上是免费的,并且无论如何都发生在机器代码级别,因为所有中间结果都必须存储在某处

如果您的循环在执行程序时被检测为热点,JIT 编译器会将 Math.min 的完整代码内联到您的循环中。到那时,您正在考虑的两个选项之间几乎没有区别。

然而,最终的判断是测量您的代码运行情况。如果——且仅当——你看到实际的性能问题,你应该首先使用分析器来查看时间到底花在哪里;永远不要相信你的猜测。然后,如果确实证明这个特定循环是瓶颈,您可以考虑使用这两个选项进行测试,看看它是否有任何不同。

关于java - 更新最小变量 : min(a, b) 与 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com