Java 如何获取数组中的最小值 publicstaticintgetminimum(int[]a){ int min=0; 对于(inti=0;i

Java 如何获取数组中的最小值 publicstaticintgetminimum(int[]a){ int min=0; 对于(inti=0;i,java,Java,,第二个版本的直接问题在rdowell的回答中得到了很好的解决 但是,通过比较min而不是始终a[0]来修复它之后,您将遇到第二个问题 如果使用0初始化min,则无法找到较低的值,至少不能在示例的正值中找到较低的值。 用a[0]初始化它会使用一个可能的值,其他值可以更低。 如果您不想使用第一个元素初始化,那么init可以高于任何值。 对于一位数的示例,“10”是一个好值,那么第一个值已经较低,其他值也有机会。rdowell的回答很好地解决了第二个版本的直接问题 但是,通过比较min而不是始终a[

,第二个版本的直接问题在rdowell的回答中得到了很好的解决

但是,通过比较
min
而不是始终
a[0]
来修复它之后,您将遇到第二个问题

如果使用0初始化
min
,则无法找到较低的值,至少不能在示例的正值中找到较低的值。
a[0]
初始化它会使用一个可能的值,其他值可以更低。
如果您不想使用第一个元素初始化,那么init可以高于任何值。
对于一位数的示例,“10”是一个好值,那么第一个值已经较低,其他值也有机会。rdowell的回答很好地解决了第二个版本的直接问题

但是,通过比较
min
而不是始终
a[0]
来修复它之后,您将遇到第二个问题

如果使用0初始化
min
,则无法找到较低的值,至少不能在示例的正值中找到较低的值。
a[0]
初始化它会使用一个可能的值,其他值可以更低。
如果您不想使用第一个元素初始化,那么init可以高于任何值。
对于一位数的示例“10”是一个好值,那么第一个值已经较低了,其他值也有机会了。

在第二个示例中,您总是与
a[0]进行比较
,而不是与当前的最小值相反。因此,您得到的答案将始终是数组中小于
a[0]
中的值的最后一个数字,在您的情况下,该值为3


如果您的目的是对数组进行排序,正如问题的标题所暗示的,那么您可能打算将最小值放入
a[0]
每次更新时。这实际上不会正确排序数组,但会使您走上正确的轨道,并解决比较问题

在第二个示例中,您总是与
a[0]进行比较
,而不是与当前的最小值相反。因此,您得到的答案将始终是数组中小于
a[0]
中的值的最后一个数字,在您的情况下,该值为3


如果您的目的是对数组进行排序(如问题标题所示),那么您可能想在每次更新时将最小值放入
a[0]
。这实际上不会正确地对数组进行排序,但会使您走上正确的轨道,并解决第二个示例中的比较问题,即更改

int[] smallest = {4,5,1,3,7};
System.out.println(getMinimum(smallest));
if(a[i]

if(a[i]

这就是区别。与您将min设置为0或[0]无关。尤其是在第二个示例中,您甚至没有将[i]与min进行比较。在第二个示例中,更改

int[] smallest = {4,5,1,3,7};
System.out.println(getMinimum(smallest));
if(a[i]

if(a[i]

这就是区别。与您将min设置为0或a[0]无关。尤其是在第二个示例中,您甚至没有比较a[i]到最小值。

当您应该与前一个最小值进行比较时,总是比较
数组中的第一个值。
min
设置为
0
,第二个示例从不计算最小值。除非
数组
包含负值,
min
将保持为
0
以下代码应起作用:

if(a[i] < a[0])
publicstaticintgetminimum(int[]a){
int min=a[0];

对于(int i=0;i当您应该与前一个最小值进行比较时,总是比较
数组中的第一个值。第二个示例从不计算最小值,因为
min
被设置为
0
,除非
数组
包含负值,
min
将保持为
0
以下代码应该可以工作:

if(a[i] < a[0])
publicstaticintgetminimum(int[]a){
int min=a[0];

对于(int i=0;i在最上面的情况下,它返回1,而不是-1,不是吗?第二个示例完全错误。它不计算最小值。在最上面的情况下,它返回1,而不是-1,不是吗?第二个示例完全错误。它不计算最小值。
if(a[i] < a[0])
if(a[i] < min)
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;
}