import java.util.Random;
public class MaxSubarraySum {
public class MaxSubarrayPerformance{
public static int bruteForce(int[] nums) { }
public static int divideAndConquer(int[] nums) { }
public static int dynamicProgramming(int[] nums) { }
public static void testPerformance() {
int[] testSizes = {100, 500, 1000, 2000};
Random random = new Random();
for (int size : testSizes) {
int[] nums = new int[size];
for (int i = 0; i < size; i++) {
nums[i] = random.nextInt(201) - 100;
}
System.out.println("\n测试数据规模: " + size);
long bruteStart = System.currentTimeMillis();
bruteForce(nums);
long bruteTime = System.currentTimeMillis() - bruteStart;
long divideStart = System.currentTimeMillis();
divideAndConquer(nums);
long divideTime = System.currentTimeMillis() - divideStart;
long dpStart = System.currentTimeMillis();
dynamicProgramming(nums);
long dpTime = System.currentTimeMillis() - dpStart;
System.out.printf("暴力法: %-10dms | 分治法: %-10dms | 动态规划法: %dms%n",
bruteTime, divideTime, dpTime);
System.out.println("=".repeat(60));
}
}
}
public static void main(String[] args) {
testPerformance();
}
}