4:对数器

4:对数器

 

没有OJ怎么办?

问题,总有办法解决,有差办法比如纯暴力的尝试,有最优解。总可以搞出2种以上的解决思路。

产生随机数据在2套思路中跑出来的数据进行对比,如果几百万次,几千万次,跑出来的结果都是一样的,小概率事件:我们写的最优解出错。

 

 1 public static void main(String[] args) {        
 2         int testTime = 500000;
 3         int maxSize = 100;     //随机数组的长度0~100
 4         int maxValue = 100;    //值 -100~100之间
 5         boolean succeed = true;
 6         for (int i = 0; i < testTime; i++) {
 7             int[] arr1 = generateRandomArray(maxSize, maxValue);
 8             int[] arr2 = copyArray(arr1);
 9             bubbleSort(arr1);
10             comparator(arr2);
11             if (!isEqual(arr1, arr2)) {
12                 succeed = false;
13                 break;
14             }
15         }
16         System.out.println(succeed ? "Nice!" : "Fucking fucked!");
17 
18     }

 

1 public static int[] generateRandomArray(int maxSize, int maxValue) {
2         int[] arr = new int[(int) ((maxSize + 1) * Math.random())];
3         for (int i = 0; i < arr.length; i++) {
4             arr[i] = (int) ((maxValue + 1) * Math.random()) - (int) (maxValue * Math.random());
5         }
6         return arr;
7     }

 

posted @ 2022-05-03 09:59  yzmarcus  阅读(27)  评论(0)    收藏  举报