上课练习(二)

思路:先建立一个文件,将随机生成的数据存入文件中,然后读取文件数据对数据进行判断从而求出最大子数组的和。

package com.pre;

public class Sz 
{
      public static void main(String[] args)
      {
          int []a= {1,2,3,4,-5,5,6,-5};
          maxSubArry(a);

     }
      public static void maxSubArry(int []a )
      {
        int start=0;//数组的起始下标
        int end=0;//数组的最后元素的下标
        int leng=0;//子数组的长度
        int add=0;
        Integer sum=null;
        while(leng<=a.length)
        {
         for(int i=0;i<(a.length-leng);i++)
         {
            for(int j=i;j<(i+leng-1);j++)
            {
                add+=a[j];
            }
            if(sum==null||sum<add)
            {
                sum=add;
                start=i;
                end=i+leng-1;
            }
         }
         leng++;
        }
        System.out.println("和为最大值的子数组的元素为:");
        for(int k=start;k<=end;k++)
        {
            System.out.println(a[k]+""+",");
        }
        System.out.println("和为"+sum);
      }
}      
     

 

猜你喜欢

转载自www.cnblogs.com/lq13035130506/p/10549298.html
0条评论
添加一条新回复