java - 如何在数组中获得最小值
问题描述
int[] smallest = {4,5,1,3,7};
System.out.println(getMinimum(smallest));
public static int getMinimum(int[] a){
int min = a[0];
for (int i = 0; i <a.length; i++){
if(a[i] < min){
min = a[i];
}
}
return min;
}
这个(上面)有效,但这个(下面)没有:
int[] smallest = {4,5,1,3,7};
System.out.println(getMinimum(smallest));
public static int getMinimum(int[] a){
int min = 0;
for (int i = 0; i <a.length; i++){
if(a[i] < min){
min = a[i];
}
}
return min;
}
我不知道为什么,在顶部示例中getMinimum
返回1
,但在底部示例中getMinimum
返回3
?两者都在做同样的事情,但一个是错的,另一个是对的?是因为我将 min 分配给 equal0
吗?
解决方案
在您的第二个示例中,您总是与 比较a[0]
,而不是与您当前的最小值进行比较。因此,您得到的答案将始终是数组中的最后一个数字,该数字小于a[0]
在您的情况下为 3的值
a[0]
如果您打算对数组进行排序,正如您的问题的标题所暗示的那样,那么您可能打算在每次更新时将最小值放入其中。这实际上不会正确地对数组进行排序,但它会让你走上正确的轨道并解决比较问题
推荐阅读
- python - 使用 Python,我将如何返回行 # 以及我的 SQLite DB 中的描述?
- java - Hibernate QuerySyntaxException:未映射
- perl - 将 coderef 传递给 sort() 问题
- arrays - 如果数组有一些数据已经反应原生,如何将数据推送到数组数组中?
- discord - Discord.js - 检测消息是否包含图像或链接
- google-apps-script - 有没有办法让这个循环更有效率?
- javascript - StartsWith() 不适用于 takeWhile()
- javascript - 仅将数组的最后一个元素添加到现有数组
- node.js - 发生重复键错误时 Postgres 自动递增
- bokeh - 将全息图视图缩放到当前叠加层