java 排序算法专用测试类 生成随机数组并测试用

生成随机数组并用于测试


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

public class SortTestList extends ArrayList<SortTestList.SortTest> {

	SortTestList(int maxLimit, int len){
		Random random = new Random();
		for (int i = 0; i < len; i++) {
			int limit = random.nextInt(maxLimit);
			this.add(new SortTest(limit));
		}
	}
	//测试所有实例是否排序完成
	public void test(){
		for (int i = 0; i < this.size(); i++) {
			this.get(i).testToStr();
		}
	}

	class SortTest{
		//记录初始状态
		private int[] originArr;
		//用于排序的数组
		private int[] arr;

		SortTest(int limit){
			arr = new int[limit];
			originArr = new int[limit];
			Random random = new Random();
			for (int i = 0; i < limit; i++) {
				//正负数都要有
				arr[i]=random.nextInt(100)-random.nextInt(100);
				originArr[i]=arr[i];
			}
		}

		public int[] getArr() {
			return arr;
		}

		public boolean test(){
			//将排序好的数据复制一份
			int[] ints = Arrays.copyOf(arr, arr.length);
			//调用JDK排序方法对原本的数据进行排序
			Arrays.sort(ints);
			return Arrays.equals(ints, arr);
		}

		public void testToStr(){
			if (test()){
				System.out.println("true:"+Arrays.toString(originArr)+"--->"+Arrays.toString(arr));
			}else{
				System.out.println("false:"+Arrays.toString(originArr)+"--->"+Arrays.toString(arr));
			}
		}

	}
}

使用方法

//		生成100个随机数组,最大值为20
		SortTestList sortTestList = new SortTestList(20, 100);
		for (SortTestList.SortTest sortTest : sortTestList) {
			//获取一组随机数据
			int[] testArr = sortTest.getArr();
			//↓↓↓调用自己的排序函数进行排序
			recursionSort(testArr, 0, testArr.length-1);
		}
		//对排序过的100个数组进行测试
		sortTestList.test();

true:[-18, 2, 71, 80, 3, 19, 2, 27, 50, -28, -15, 2]--->[-28, -18, -15, 2, 2, 2, 3, 19, 27, 50, 71, 80]
true:[32, 31, 0, 1, -3, -27, 31, -8, 68, 3, -18, 72, 41, -6, 34, 35, 28, -60]--->[-60, -27, -18, -8, -6, -3, 0, 1, 3, 28, 31, 31, 32, 34, 35, 41, 68, 72]
true:[24, -42, 1, 58, -5, 27, 52, -36, -33, 54, -20, 29, -56, -35, 6, 25, 19, -55, -1]--->[-56, -55, -42, -36, -35, -33, -20, -5, -1, 1, 6, 19, 24, 25, 27, 29, 52, 54, 58]
true:[18, -86, -73, -23, 33, 5]--->[-86, -73, -23, 5, 18, 33]
true:[]--->[]
true:[24, 47, 46, -51, 9, -16, -7, -7, 61, -11, 46, 60, -15]--->[-51, -16, -15, -11, -7, -7, 9, 24, 46, 46, 47, 60, 61]
true:[-14, -4, 9, 61, 12, 34, 38]--->[-14, -4, 9, 12, 34, 38, 61]
true:[83, -40, -65, 37]--->[-65, -40, 37, 83]
true:[-11, -18, 24, 12, 21, -63, 73, 25, -51, 27]--->[-63, -51, -18, -11, 12, 21, 24, 25, 27, 73]
true:[17, -2, -68, -20, -25, 58, -23, -28, -6, 37, 72, -41, -25, -11, 18, -21, -4]--->[-68, -41, -28, -25, -25, -23, -21, -20, -11, -6, -4, -2, 17, 18, 37, 58, 72]
true:[-85, -13, -9, -10, 39, 34, 76, 28, -7, -41, 33, -12, -31, -66, -49]--->[-85, -66, -49, -41, -31, -13, -12, -10, -9, -7, 28, 33, 34, 39, 76]
true:[-41, 0, -58, 8]--->[-58, -41, 0, 8]
true:[34, -39, -42, -27, 40, -54, 34, -48, 66, -1, 0, 84, 21, 45, 19, 39, 90, -47]--->[-54, -48, -47, -42, -39, -27, -1, 0, 19, 21, 34, 34, 39, 40, 45, 66, 84, 90]
true:[]--->[]
true:[15, 9, -27, -19, 71, 43, 8, -26, -16, 45, -41, -62, -60, 35, 19]--->[-62, -60, -41, -27, -26, -19, -16, 8, 9, 15, 19, 35, 43, 45, 71]
true:[17, -2, 8, 65, -30, 34, -20, 58, -68, 4, 47, 36]--->[-68, -30, -20, -2, 4, 8, 17, 34, 36, 47, 58, 65]
true:[-40]--->[-40]
true:[]--->[]
true:[-2, -52, -17, -58, -48, -28]--->[-58, -52, -48, -28, -17, -2]
true:[-12, 48, -44, 27, 6, -24, 0, -4]--->[-44, -24, -12, -4, 0, 6, 27, 48]
true:[24, 26, -34, 16, 10, -10, -8, 22, -52, -5, -35, -4, 31, 27, -29, -52]--->[-52, -52, -35, -34, -29, -10, -8, -5, -4, 10, 16, 22, 24, 26, 27, 31]
true:[0, 0]--->[0, 0]
true:[73, 22, -67, 57, -13]--->[-67, -13, 22, 57, 73]
true:[-46, 20, 40]--->[-46, 20, 40]
true:[30, -59, 41, -50, 1, -59]--->[-59, -59, -50, 1, 30, 41]
true:[]--->[]
true:[-22, -39, -22, 25, -70, -1, -64, 24, -39]--->[-70, -64, -39, -39, -22, -22, -1, 24, 25]
true:[-19, 12, 29, -19, 15, -47, -27, 54, 2, -6, 97, -63, 5, 65, 22]--->[-63, -47, -27, -19, -19, -6, 2, 5, 12, 15, 22, 29, 54, 65, 97]
true:[-12, 82, 0, 23, 11]--->[-12, 0, 11, 23, 82]
true:[37, -59, -15, -32, -61, -7, 6, 24, 10, -7, -69, 1, -3, 31, -13]--->[-69, -61, -59, -32, -15, -13, -7, -7, -3, 1, 6, 10, 24, 31, 37]
true:[]--->[]
true:[5, 16, -56, 75]--->[-56, 5, 16, 75]
true:[17, -41, 28, 16, 37, 66]--->[-41, 16, 17, 28, 37, 66]
true:[7, -27, -22, -18]--->[-27, -22, -18, 7]
true:[-81, 42, -68, -38, 49, -61, -3, -65, -9, 13, -69, 14, 69, -35, 6, -36]--->[-81, -69, -68, -65, -61, -38, -36, -35, -9, -3, 6, 13, 14, 42, 49, 69]
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNbrightness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值