【 C++ 】 讲解与实现 对数器接口

本文介绍了一种名为对数器的工具,实际上是核验器,用于生成大量随机数组测试算法的稳定性。通过生成不同大小和内容的数组,对比自定义和专业代码的输出,检查算法是否正确。以快速排序为例,展示了如何使用对数器进行算法验证。

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

什么是对数器

说是叫对数器,但我觉得叫做核验器更好。
为什么?因为其作用是核验算法是否正确,所以我觉得叫核验器更好。
注意:本文实现的是生成只能int类型的对数器,其余类型不支持。

对数器的原理

对于一个核验器,其作用就是生成大量的数据来轰炸算法,若是算法经受了大量数据的轰炸,且保证每次都可以返回一个正确的值,说明这个算法是健壮的,良好的。

实现思路

  1. 对数器会不断的生成随机大小、随机内容的数组;
  2. 复制一份相同的数组;
  3. 把两个数组分别传入自己写的算法代码,以及传入专业的代码中;
  4. 对比两份代码输出的结果,结果不一样则退出;
  5. 结果一样就回到第1步。

代码实现

核心代码

#include <iostream>
#include <ctime>
#include <random>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
using namespace std;

// 生成一个随机长度的内容随机数组
void Generator(int*& arr, int size, int val, int& len)
{
   
    static int i = 0;
    default_random_engine e;
    uniform_int_distribution<int> u1(0, size); // 左闭右闭区间
    uniform_int_distribution<int> u2(0, val); // 左闭右闭区间
    e.seed(time(0) + (i++));

	// 生成随机长度
    len = u1(e);

    arr = new int[len];

    for (int i=0; i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入一下?

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

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

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

打赏作者

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

抵扣说明:

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

余额充值