zoukankan      html  css  js  c++  java
  • 一维数组环的最大子数组和

    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.结果截图

  • 相关阅读:
    csuoj 漫漫上学路
    sql函数
    sql基本
    查看webdriver API
    Jmeter应用-接口测试
    http协议
    Jmeter .jmx 改为.jtl
    Jmeter遇到打不开的问题
    测试要点
    apt-get安装mysql
  • 原文地址:https://www.cnblogs.com/feifeishi/p/4429592.html
Copyright © 2011-2022 走看看