如何验证自己代码的正确性?

很多时候,我们写的代码虽然能够通过我们自己手动输入的样例,但是这段代码的正确性还是有待考究的。比如,当你在一些Online Judge的网站上敲题时,可能写的解决办法能够完美解决样例给出的输入,并给出正确输出,但是提交之后还是会wa。有时候可能是因为没有考虑边界问题,有时候可能是贪心算法有问题。这时候就应该模拟一下大数据量的输入来验证一下自己代码的正确性。思路如下:(拿简单的冒泡排序为例)

1.一个绝对正确的方法作为参考

拿排序方法举例,我们可以调用Java所提供的Arrays.sort函数作为绝对正确的方法,保证我们有正确的参考。其他的问题我们就可以写一些虽然暴力,时间复杂度高或者空间复杂度高的方法,只要它绝对正确就可以。

	public static void comparator(int[] arr) {
   
		Arrays.sort(arr);
	}

2.能够产生随机输入的函数

拿排序方法举例,我们只要写出一个能产生随机数组并赋值我们想要的随机数值的函数就可以。要保证产生的输入是随机的,可以帮我们查错就可以。当然,有的题目的输入很复杂,所以产生输入的函数也会变得复杂。

	public static int[] generateArrayRandom(int maxSize, int maxValue) {
   
		int size = (int) (Math.random() * (maxSize + 1));
		int arr[] = new int[size];
		for (int i <
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值