码迷,mamicode.com
首页 > 编程语言 > 详细

一维数组环的最大子数组和

时间:2015-04-15 20:51:51      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

1.实现功能

  实现一个数组环的最大自数字和的计算。   

2.实验思路

  计算最大子数组和:从第一个数开始往后加记录为sum,当sum小于零时,使sum等于零,并继续往后加,取记录的sum的最大值;

  计算最大子数组和,记录,然后把第一个数放到最后,计算最大子数组和,记录,然后再把第一个数放到最后,这样执行n次,取记录和的最大值。 

3.实验代码

package 数组环;

import java.util.Random;
import java.util.Scanner;

public class aa {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[];
        int Length,sum,max;
        int i,k,j,l;
        //随机产生一个数组
        Scanner scanner = new Scanner(System.in);
        System.out.print("输出随机产生的数组的长度:");
        Length=scanner.nextInt();
        scanner.close();
        a=new int[Length];        
        for(i=0;i<Length;i++)
        {
            Random random = new Random();
            a[i]=random.nextInt(19);
            a[i]=a[i]-9;
            System.out.print(a[i]);
            System.out.print(" ");
        }
        
        l=0;
        for(i=0;i<Length;i++)
        {
            if(a[i]<0)
                l+=1;
        }
        if(l==Length)//如果Length个数均为负数
        {
            max=a[0];
            for(i=0;i<Length;i++)
                if(a[i]>max)
                {
                    max=a[i];
                }
        }
        else
        {
            max=0;
            for(j=0;j<Length;j++)
            {
                k=a[0];
                  for(i=0;i<Length-1;i++)
                  {
                      a[i]=a[i+1];
                   }
                  a[Length-1]=k;
                  sum=0;
                for(i=0;i<Length;i++)
                {
                    sum=sum+a[i];
                    if(sum>max)
                    {
                        max=sum;
                    }
                    if(sum<0)
                    {
                        sum=0;
                    }
                 }
            }
        }

        
        System.out.println("");
        System.out.print("最大和为");
        System.out.print(max);
              
    }

}

4.结果截图

技术分享

技术分享

一维数组环的最大子数组和

标签:

原文地址:http://www.cnblogs.com/feifeishi/p/4429592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!