脚本宝典收集整理的这篇文章主要介绍了对数器的概念和使用,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
左程云算法与数据结构课 https://www.bilibili.com/video/BV13g41157hK?p=2&spm_id_from=pageDriver
学习博客 https://blog.csdn.net/qq_45372719/article/details/107631750
下面将假设冒泡排序是我们要测的方法。
public class ComparatorTest {
//冒泡排序 方法a
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int end = arr.length-1; end > 0; end--) {
for (int i = 0; i < end; i++) {
if (arr[i] > arr[i+1]) {
swap(arr,i,i+1);
}
}
}
}
public static void swap(int[] arr, int i, int j) {
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] -arr[j];
arr[i] = arr[i] - arr[j];
}
//for test
public static void comparator(int[] arr) {
//方法b
Arrays.sort(arr);
}
//for test
//生成随机数组
public static int[] generateRandomArray(int maxSize, int maxValue) {
int[] arr = new int[(int) ((maxSize + 1) * Math.random())]; //长度随机
for (int i = 0; i < arr.length; i++) {
//值随机
arr[i] = (int) ((maxValue + 1) * Math.random()) - (int) (maxValue * Math.random());
}
return arr;
}
//for test
//复制数组
public static int[] copyArray(int[] arr) {
if (arr == null) {
return null;
}
int[] res = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
res[i] = arr[i];
}
return res;
}
//比较两数组是否相同
public static boolean isEqual(int[] arr1, int[] arr2) {
if (arr1 == null && arr2 == null) {
return true;
}
if (arr1 == null || arr2 == null) {
return false;
}
if (arr1.length != arr2.length) {
return false;
}
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
//打印数组
public static void printArray(int[] arr) {
if (arr == null) {
return;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
//for test
public static void main(String[] args) {
int testTime = 500000; //测试次数
int maxSize = 100; //最大测试容量
int maxValue = 100; //最大测试数据
boolean succeed = true; //是否对比成功
//开始测试
for (int i = 0; i < testTime; i++) {
int[] arr1 = generateRandomArray(maxSize, maxValue);
int[] arr2 = copyArray(arr1);
bubbleSort(arr1);
comparator(arr2);
if (!isEqual(arr1, arr2)) {
succeed = false;
break;
}
}
System.out.println(succeed ? "Nice" : "Bad");
int[] arr = generateRandomArray(maxSize, maxValue);
printArray(arr); //没排序打印
bubbleSort(arr); //排序
printArray(arr); //排序完打印,程序员自己观察是否正确
}
}
以上是脚本宝典为你收集整理的对数器的概念和使用全部内容,希望文章能够帮你解决对数器的概念和使用所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。