java算法——自建对数器

用于验证所写算法是否正确,与java自带的函数方法进行比较,例如写一个排序算法,验证排序算法是否正确,采用Arrays.sort(arr) 的方式,与自己所写的算法进行比对,经过多轮(比较大的一个轮次)比对如果结果都一致,则说明所写算法正确,反之则有问题。

package class01;

import java.util.Arrays;

/*
/对数器

 */
public class Code_logmachine {
    public static void selectionSort(int[] arr){
        if(arr==null||arr.length<2){
            return;
        }
        for(int i=0;i<arr.length;i++){
            int minindex=i;
            for(int j=i;j<arr.length;j++){
                minindex= arr[j]<arr[minindex]?j:minindex;
            }
            swap(arr,i,minindex);
        }
    }
    public static void comparator(int[] arr){
        Arrays.sort(arr);
    }
    public static void swap(int[] arr,int i,int j){
        int temp=arr[i];
        arr[i]=arr[j];
        arr[j]=temp;
    }
    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;
    }
    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) {
        for(int i=0;i<arr1.length;i++){
            if(arr1[i]!=arr2[i])
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        int testtime=5000000;
        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);
            selectionSort(arr1);
            comparator(arr2);
            if(!isEqual(arr1,arr2)){
                succeed =false;
                break;
            }
        }
        System.out.println(succeed?"Nice!" :"xxxxx");
        int arr[] =generateRandomArray(maxsize,maxvalue);

    }


}

 

posted on 2022-10-04 19:59  发酸的土豆  阅读(43)  评论(0编辑  收藏  举报