SLy

永远年轻,永远憧憬,永远热爱。


  • 首页

  • 归档

  • 影集

  • 关于

  • 搜索
Thread Spring JAVA JVM 游记 计算机基础 MySQL 排序算法 PMP 情感 摄影 博客

算法对数器

发表于 2020-12-06 | 分类于 排序算法 | 0 | 阅读次数 521
package com.sort.admin;

import java.util.Arrays;

public class CheckNumber {

    // 正确的排序
    public static void rightMethod(int[] arr) {
        Arrays.sort(arr);
    }

    // 随机数组生成器
    public static int[] generateRandomArray(int size, int value) {
        // 生成随机长度(0-size)
        int[] arr = new int[(int) (Math.random() * (size + 1))];

        // 生成随机数字(-value 到 value)
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) ((value + 1) * Math.random()) - (int) (value * Math.random());
        }
        return arr;
    }

    // 判断两个数组是否相等
    public static boolean isEqual(int[] arrA, int[] arrB) {
        if ((arrA == null && arrB != null) || (arrA != null && arrB == null)) {
            return false;
        }
        if (arrA == null && arrB == null) {
            return true;
        }
        if (arrA.length != arrB.length) {
            return false;
        }
        for (int i = 0; i < arrA.length; i++) {
            if (arrA[i] != arrB[i]) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        int testTime = 5000;
        int size = 20;
        int value = 50;

        boolean isSucceed = true;
        for (int i = 0; i < testTime; i++) {
            int[] arr1 = generateRandomArray(size, value);
            int[] arr2 = Arrays.copyOf(arr1, arr1.length);
            int[] arr3 = Arrays.copyOf(arr1, arr1.length);

            // System.out.println("arr1: -->\n" + Arrays.toString(arr1));
            // System.out.println("arr2: -->\n" + Arrays.toString(arr2));
            // System.out.println("arr3: -->\n" + Arrays.toString(arr3));

            InsertionSort.sort(arr2);
            rightMethod(arr3);

            // System.out.println("arr1: <--\n" + Arrays.toString(arr1));
            // System.out.println("arr2: <--\n" + Arrays.toString(arr2));
            // System.out.println("arr3: <--\n" + Arrays.toString(arr3));

            if (!isEqual(arr2, arr3)) {
                isSucceed = false;
                //打印出出现bug的样本
                System.out.println("发生错误的样本:" + Arrays.toString(arr1));
                break;
            }
        }
        System.out.println(isSucceed ? "true" : "false");

    }
}

  • 本文作者: SLy
  • 本文链接: https://sly.plus/archives/checknumber
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明出处!
# Thread # Spring # JAVA # JVM # 游记 # 计算机基础 # MySQL # 排序算法 # PMP # 情感 # 摄影 # 博客
Halo安装部署指南
选择排序
  • 文章目录
  • 站点概览
SLy

SLy

永远年轻,永远憧憬,永远热爱。

37 日志
12 分类
12 标签
RSS
Github E-mail
Creative Commons
© 2020 — 2025 SLy