首页 > 编程语言 > 详细

对比生成测试算法用例

时间:2017-02-10 20:42:59      阅读:242      评论:0      收藏:0      [点我收藏+]

在对两个算法进行比较时,通常需要两个或多个算法对同一个数组进行排序,所以需要先对数组进行复制

1 int* copyIntArray(int a[],int n)
2 {
3     int *arr=new int[n];
4     copy(a,a+n,arr);
5     return arr;
6 }

使用copy函数进行数组复制

有些算法对无序数组和接近有序数组的排序性能差异较大,所以需要定义一个生成基本有序数组的函数

 1 int* generateNearlyOrderedArray(int n,int swapTimes)
 2 {
 3     int *arr=new int[n]; 
 4     for(int i=0;i<n;i++)
 5         arr[i]=i;
 6     
 7     srand(time(NULL));
 8     for(int i=0;i<swapTimes;i++)
 9     {
10         int posx=rand()%n;
11         int posy=rand()%n;
12         swap(arr[posx],arr[posy]);
13     }
14 
15     return arr;
16 }

函数参数两个,一个是数组长度,一个是无序数对数

首先通过循环复制生成一个有序数组,然后根据srand和rand()生成随机数,并对没对随机数对应的数组元素进行交换。需要注意的是,生成的随机数需要对n取余,以保证随机数在数组长度范围内。

对比生成测试算法用例

原文:http://www.cnblogs.com/Bird-of-Paradise/p/6387548.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!