一、程序分析

本程序我采用idea集成开发工具编写的,使用的是java代码,代码如下:
public class Array_son_maxnode_sum {
//求数组的最大子数组之和函数
public int maxSum(int[] array) {
if (array == null || array.length == 0) {
throw new IllegalArgumentException("array is null or empty.");
}
int result = array[0], mark = 0;
for (int i = 0; i < array.length; i++) {
int element = array[i];
if (mark >= 0) {
mark += element;
} else {
mark = element;
}
if (mark > result) {
result = mark;
}
}
return result;
}
public static void main(String[] args) {
Array_son_maxnode_sum maxSumOfSubArray = new Array_son_maxnode_sum();
java.util.Scanner in=new java.util.Scanner(System.in);
System.out.println("请输入数组的长度:");
int size=in.nextInt();//数组的长度
System.out.println("请输入该数组:");
int []Array=new int[size];
for(int num=0;num<size;num++)
Array[num]=in.nextInt();
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
}
二、单元测试
在这里我用的是maven工具,它是基于项目对象模型,里面有许多jar包,我采用的是junit测试工具对以上代码进行测试,测试过程如下:
1、创建一个maven项目,并在pom.xml里面写对应的依赖,这里我们要使用的是junit工具,直接写junit依赖,如下图(2.1)
图2.1
要写的依赖代码如下:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.6.2</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
</dependencies>
2.测试代码
将函数放入main文件中,将测试代码放入test文件中。
函数代码如下:
public class Funcation {
//求数组的最大子数组之和函数
public int maxSum(int[] array) {
if (array == null || array.length == 0) {
throw new IllegalArgumentException("array is null or empty.");
}
int result = array[0], mark = 0;
for (int i = 0; i < array.length; i++) {
int element = array[i];
if (mark >= 0) {
mark += element;
} else {
mark = element;
}
if (mark > result) {
result = mark;
}
}
return result;
}
}
我这里设计了10个测试用例,测试代码如下:
import org.junit.Test;
public class Test1 {
Funcation maxSumOfSubArray = new Funcation();
@Test
public void test1(){
int []Array={0,0,0,0,0};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test2(){
int []Array={1, 5, 8, 9, 6};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test3(){
int []Array={1,2,-4,0,-7};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test4(){
int []Array={-6,-7,-8,-2,-1};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test5(){
int []Array={1,-4,-7,6,-9};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test11(){
int []Array={1,9,-8,-7,10};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test21(){
int []Array={4,49,0,9,1,-9,-8};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test31(){
int []Array={-7,-9,-5,1,2,3,4};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test41(){
int []Array={10,23,45,-87,98,76,-100};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
@Test
public void test51(){
int []Array={1,2,-3,-4,-1,-2,-9};
int maxSum = maxSumOfSubArray.maxSum(Array);
System.out.println(maxSum);
}
}
3、测试成功截图(如下图)
图 2.2
三、性能分析
我这里使用的是JProfiler性能分析工具,性能分析过程如下:
1、先下载一个JProfiler工具
2、在idea下载一个JProfiler插件(如下图3.1)


图3.2
4、使用JProfiler进行性能分析,结果如下
所有对象的实时内存截图:

总体概览如下:

原文:https://www.cnblogs.com/z-m-t/p/14530201.html