目录
5、把绝对正确的方法和我们自己实现的方法对比多次来验证方法是否正确
6、如果有一个样本使得对比出错,那么打印样本,分析是哪个方法出错
7、当样本数量很多对比结果仍然正确,那么可以确定方法已经正确了
对于某一个问题,我们设计了一个算法的实现方式,如果直接提交测试,那么可能会因为某些条件不满足而导致code失败,那么我们考虑是否可以设计一个程序,用于生成大量的测试数据,通过大量测试数据来检验我们设计的算法是否正确。
而这一个过程,其实就是对数器,即设计一个程序,来对我们的程序进行数据检验
一、设计对数器
1、有一个你想要测试的方法a
例如,我们实现一个冒泡排序的方法
2、实现一个绝对正确但是复杂度不好的方法b
例如,我们使用O(N^2)的遍历方式实现一个排序算法
3、实现一个随机样本产生器
主要用于产生对应的数据样本,用于大量测试
例如:
/**
* 产生随机长度的数组
*/
@JvmStatic
fun generateRandomArray(size: Int, value: Int): IntArray {
// 长度随机
val randomArray = IntArray(((size + 1) * Math.random()).toInt())
for (i in randomArray.indices) {
randomArray[i] = ((((value + 1) * Math.random()).toInt()) - (value * Math.random())).toInt()