sort2——随机数生成测试样例
2017-07-15 00:28
176 查看
一、直接使用rand()函数生成:
别遗漏头文件,注意随机种子的设置方法(展示的是标准的C/C++办法)。
运行结果:
二、标准的随机数生成办法,设置随机数生成范围。实现如下:
注意assert()函数的用法。
运行结果:
三、简单的测试下 库函数排序算法 sort() 所需时间,实现如下:
运行结果:
无。。。
开玩笑,只是测试了多组数据,把运行时间合并在一起做了比较而已,据说 STL的sort()时间复杂度是 O(N)log2N.
别遗漏头文件,注意随机种子的设置方法(展示的是标准的C/C++办法)。
#include <iostream> #include <algorithm> #include <ctime> using namespace std; template<typename T> void Print_Array(T a[], int n) { for (int i = 0; i < n; ++i) cout << a[i] << "\t"; cout << endl; } int main() { //使用生成随机数方式来生成数组数据,并输出原数组数据,假设有1000个数值 const int SIZE = 1000; int* arr = new int[SIZE]; //首先需要设置随机种子,以C++标准实现 srand(time(NULL)); for (int i = 0; i < SIZE; ++i) arr[i] = rand();//赋值,rand()函数返回一个0~RAND_MAX的伪随机整数,unsigned int 类型 //STL排序,默认为升序,"<=",并输出排序后数组 Print_Array(arr, SIZE); sort(arr, arr + SIZE); Print_Array(arr, SIZE); //记得解除分配内存,避免发生内存泄漏问题 delete[] arr; return 0; }
运行结果:
二、标准的随机数生成办法,设置随机数生成范围。实现如下:
注意assert()函数的用法。
#include <iostream> #include <algorithm> #include <ctime> #include <cassert> using namespace std; template<typename T> void Print_Array(T a[], int n) { for (int i = 0; i < n; ++i) cout << a[i] << " "; cout << endl; } int main() { //使用生成随机数方式来生成数组数据,并输出原数组数据,假设有100个数值 const int SIZE = 100; int* arr = new int[SIZE]; //首先需要设置随机种子,以C++标准实现 srand(time(NULL)); int randL = 1, randR = 50; assert(randL <= randR);//必须保证左值不大过右值 //赋值,赋一个[randL,randR]范围的伪随机整数,unsigned int 类型 for (int i = 0; i < SIZE; ++i) arr[i] = rand()% (randR - randL +1) + randL; //STL排序,默认为升序,"<=",并输出排序后数组 Print_Array(arr, SIZE); sort(arr, arr + SIZE); Print_Array(arr, SIZE); //记得解除分配内存,避免发生内存泄漏问题 delete[] arr; return 0; }
运行结果:
三、简单的测试下 库函数排序算法 sort() 所需时间,实现如下:
#include <iostream> #include <algorithm> #include <ctime> #include <cassert> using namespace std; int main() { //使用生成随机数方式来生成数组数据 const int SIZE = 10000; int* arr = new int[SIZE]; //首先需要设置随机种子,以C++标准实现 srand(time(NULL)); int randL = 10, randR = 20;//设置范围[left,right]闭区间 assert(randL <= randR);//必须保证左值不大过右值 //赋值,赋一个[randL,randR]范围的伪随机整数,unsigned int 类型 for (int i = 0; i < SIZE; ++i) arr[i] = rand()% (randR - randL +1) + randL; clock_t startTime = clock();//开始时刻 sort(arr, arr + SIZE); clock_t endTime = clock();//结束时刻 cout <<"SIZE = "<<SIZE<<endl <<"STL_Sort : " << (double)(endTime - startTime) / CLOCKS_PER_SEC << "s" << endl; //记得解除分配内存,避免发生内存泄漏问题 delete[] arr; return 0; }
运行结果:
无。。。
开玩笑,只是测试了多组数据,把运行时间合并在一起做了比较而已,据说 STL的sort()时间复杂度是 O(N)log2N.
相关文章推荐
- Java中在特定区间产生随机数 (2009-03-26 13:31:49)转载▼ 标签: 杂谈 生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试
- 交叉编译openssl-1.0.2l测试的第一个程序--随机数生成
- 关于随机数生成的速度测试
- 代码测试之自定义两数生成之间的随机数
- 各类排序算法生成与测试样例代码
- 随机生成1000万个随机数作为海量测试数据
- 2-3 随机生成算法测试用例-Selection-Sort-Generate-Test-Cases
- Java获取随机数生成随机字符串用于验证码等之类的工具 (未测试)
- c#生成不重复随机数的方法
- php生成指定长度的随机数
- 11、JavaScript生成随机数
- Python生成任意范围任意精度的随机数
- 使用urandom生成随机数
- 生成随机数
- C/C++ 生成随机数
- 使用/dev/random生成随机数
- LR性能测试结果样例分析 -下
- objective-c中生成随机数的方法
- java随机数生成(固定位数)
- Selenium基本使用(十二)测试报告生成