日期:2014-05-20  浏览次数:20650 次

新手求助:数组中最小值的相关问题
Java code

 class text
{
     public static void main(String[] args) 
    {
         int[] arr={1,2,3,4,5,6};
         System.out.println("数组中最小值为:"+ getMin(arr));
    }
    public static int getMin(int[] arr)
   {
         int n=arr[0];
         for(int i=0;i<arr.length;i++)
        {
             if( arr[i]<n)
            {
                 n=arr[i];
            }
        }
        return n;
   }
}






getMin(int[] arr)这个方法的实现不是很明白,搞不懂是如何找出最小值的,尤其是那个int n=arr[0]有什么作用呢,问什么要用arr[0]呢,为什么是0而不是其他呢,困惑啊帮帮我!!!

------解决方案--------------------
可以用别的,主要作用是有一个初始值,而不是随意设置一个值(当然也可以):
Java code
public static int getMin(int[] arr) {
  int n=arr[arr.length-1];
  for(int i=0;i<arr.length-1;i++) {
     if( arr[i]<n) n=arr[i];
  }
  return n;
}

------解决方案--------------------
int n=arr[0];
int n可以在数组中随便取值 (甚至可以是其它值的)

楼主可以这样理解:
假设n此时是最小值
拿n去和和数组中的每个数比较
当数组中有数比n小时 则改变最小值n为这个数
然后用n再去比较
知道循环结束 此时n当然是最小值