算法(3)-对数器-代码实例-JAVA

本文介绍了一种用于验证算法正确性的有效方法——对数器。通过设定测试次数、生成随机输入、运行被测算法及标准算法并比较结果,确保算法的准确性。文章详细解释了对数器的实现步骤,并提供了JAVA代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写了一个算法,我怎么验证我的算法对不对呢?写个小程序测试一下。这就是对数器。
过程基本就是四步:
 1.设定测试次数
 2.测试输入:2.1产生随机数组 数值范围  数值个数范围
                     2.2copy出来一份,内存地址不一样,但是数值内容一样。
3.被测黑盒
   3.1我写的函数
   3.2系统提供的方法或者叫绝对正确的方法
4..结果验证:对比两个结果
5.JAVA 随机数


static void main()
{    
     int testTime=2000;//测试次数    
     int maxSize=100;//数组大小    
     int maxValue=100;//数组值大小    
     boolean succeed=true;//初始值 不成功    
     for(int i=0;i<testTime;i++)   
     {        
       int []arr1=generateRandomArray(maxSize,maxValue);//产生随机数组        
       int []arr2=copyArray(arr1);                      //拷贝生成新数组         
       selectionSort(arr1);                             //被测黑盒函数         
       comparator(arr2);                                //绝对正确函数         
       if(!isEqual(arr1,arr2))                          //对比结果        
        {             
           succeed=false;                           //只要有一次失败就打印             
           printArray(arr1);             
           printArray(arr2);             
           break;        
         }       
       
      }    

}

JAVA生成随机数的函数:

//随机数组的生成
//Math.random() [0,1) double
//Math.random() *A ->[0,A) double A->int
public static int []generateRandomArray(int maxSize,int maxValue)
{ 
    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;

}
//复制 返回数组
public static int[] copyArray(int[] arr)
{
    if(arr==null)
    {
        return null;
    }
    int []res=new int[arr.length];
    for(int i=0;i<arr.length;i++)
    {
        res[i]=arr[i];
    }
    return res;
}

 


                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值