数据结构基础之《(2)—对数器》

一、认识对数器

1、你在网上找到了某个公司的面试题,你想了好久,感觉自己会做,但是你找不到在线测试
2、你和朋友交流面试题,你想了好久,感觉自己会做,但是你找不到在线测试
3、你在网上做笔试,但是前几个测试用例都过了,突然一个巨大无比数据量来了,结果你的代码报错了,如此大的数据量根本看不出哪错了

二、对数器怎么用

1、你想要测的方法a(你设计的流程时间复杂度低,但是不知道对不对)
2、实现复杂度不好但是容易实现的方法b
3、实现一个随机样本产生器
4、把方法a和方法b跑相同的随机样本,看看得到的结果是否一样
5、如果有一个随机样本使得比较结果不一致,打印样本进行人工干预,改对方法a和方法b
6、当样本数量很多时,比对测试依然正确,可以确定方法a已经正确

例子:

	//随机生成数组
	public static int[] generateRandomArray(int maxSize, int maxValue) {
		//Math.random()  返回[0,1)之间的小数
		//Math.random() * N  返回[0,N)之间小数
		//(int)(Math.random() * N)  返回[0, N-1]之间的整数
		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;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值