当前位置: 首页 > article >正文

数据结构基础之《(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;
	}


http://www.kler.cn/news/294568.html

相关文章:

  • 海外直播对网速、带宽、安全的要求
  • Docker容器创建时,无法访问镜像源:Could not connect to archive.ubuntu.com:80
  • C语言操作符详解1(含进制转换,原反补码)
  • 消息队列 think-queue tp5.0
  • 使用Docker启动Redis容器并映射端口
  • ChatGPT3.5/4.0新手使用手册,国内中文版使用教程
  • 记录 vue-router 跳转到第一个有权限的菜单的实现方式
  • 【大模型开发】传统向量模型 vs 重排序模型:原理、实现与应用
  • 欺诈文本分类检测(十二):模型导出与部署
  • 八大排序原来也不过如此
  • 【软件逆向】第27课,软件逆向安全工程师之(二)寄存器寻址,每天5分钟学习逆向吧!
  • 【MIT 6.5840/6.824】In Search of an Understandable Consensus Algorithm 学习笔记
  • 如何使用useMemo来优化React组件的性能?
  • 7、关于LoFTR
  • 三维布尔运算对不规范几何数据的兼容处理
  • Linux 中常用的 Vim 命令大全
  • [OpenCV] 数字图像处理 C++ 学习——13Canny边缘检测 附完整代码
  • 828华为云征文 | Flexus X 实例服务器网络性能深度评测
  • 使用PowerShell导出Exchange邮箱大小
  • docker-network
  • GatewayWorker框架的详解和应用
  • [建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
  • Hive整合MySQL
  • tabBar设置底部菜单选项以及iconfont图标
  • Java学习第七天
  • 【功能实现】如何实现点击后跳转到顶部??
  • 57-java csrf防御方案
  • 【Redis】Redis 集群搭建与管理: 原理、实现与操作
  • vue项目打包后,生成的index.html直接本地打开后没内容
  • Web:攻防世界unseping