Java求数组中的最大子数组之和并进行测试和性能分析

2021-06-08 06:04

阅读:327

标签:col   java代码   er图   length   method   导入   相关   info   一个   

一.编写代码

1.思路分析

要求一个数组中最大子数组之和,可对数组中的子数组进行遍历,再对子数组中的值进行遍历,然后累加,存储到临时变量中,比较每一个子数组中的值之和,最后得出最大数组之和。

 

2.java代码

package homework;

public class MaxSubArray {
        public static int maxSubArrayMethodOne(int[] arr){
            int n = arr.length;
            int ThisSum=0,MaxSum=0,i,j,k;

            for(i=0;i){
                for(j=i;j){
                    ThisSum=0;      //重新累加子数组
                    for(k=i;k){
                        ThisSum+=arr[k];
                    }
                    if(ThisSum>MaxSum){
                        MaxSum=ThisSum;
                    }
                }
            }
            return MaxSum;
        }
    }

 

二.使用junit对代码进行单元测试(使用的IDE为idea)

1.测试步骤

1.1要使用junit就要将相应的jar包导入到项目中,可以在官网下载jar包,也可以使用maven自动导入junit相关的jar包,这里使用的是maven的方式将jar包导入项目中。在项目的根目录下新建一个pom.xml文件,pom.xml文件中的内容如下

                       技术图片

 

 

1.2 在pom.xml中的配置junit的相关依赖,这里使用的是junit4.12,就导入4.12版本的junit,maven会将相关的jar包自动导入项目中

                     技术图片

 

 1.3 新建一个测试类,在测试类中创建一个测试方法,并在测试方法上加上Test注解,就可以使用junit对java代码进行测试了

                    技术图片

 

 

2.测试代码

package homework;

import org.junit.Test;

public class TestMaxSubArray {

    @Test
    public void testMaxSubArray(){
        int[] a ={1,2,3,5};
        //调用函数
        int result = MaxSubArray.maxSubArrayMethodOne(a);
        System.out.println("该数组最大子数组之和为:"+result);
    }

}

 

3.测试结果

 

                  技术图片

 

 

三.使用JProfiler对代码进行性能测试

1.测试步骤

1.1在官网下载JProfiler的安装包
1.2在idea中下载JProfiler的插件
1.3安装JProfiler,并在idea中集成
1.4点击idea中的JProfiler图标进行测试

               技术图片

 

 

2.性能效果

2.1 内存情况

           技术图片

 

 

 2.2 GC活动情况

           技术图片

 

 

2.3 类情况

             技术图片

 

 

2.4 线程情况

            技术图片

 

 2.5 CPU负载情况

           技术图片

 

 


Java求数组中的最大子数组之和并进行测试和性能分析

标签:col   java代码   er图   length   method   导入   相关   info   一个   

原文地址:https://www.cnblogs.com/nanxin2531540573/p/14533225.html


评论


亲,登录后才可以留言!