本文主要是介绍数据结构基础之《(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;}
这篇关于数据结构基础之《(2)—对数器》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!