增加测试函数计算排序函数运行时间
来源:互联网 发布:最火淘宝店铺 编辑:程序博客网 时间:2024/06/05 19:31
要想比较两个函数的效率,最直观的方法莫过于比较两个排序函数排序同一个数组的时间,哪个函数花的时间更少,则该函数的运行效率相对较高,因此,我们需要在头文件中引入一个测试函数,能够较为直观的返回排序函数排序数组所花费的时间。
以下为具体的代码实现:
首先需要编写一个判断函数,用来判断数组是否已经排序完成,代码如下:
template<typename T> bool issorted(T arr[],int n) { for(int i=0;i<n-1;i++)//注意i的范围最大只能取到i-2,防止数组越界,产生异常 { if(arr[i]>arr[i+1]) return false; } return true; }
接下来是正式的测试函数,用来测试排序函数所花费的时间,函数代码如下:
template<typename T> void testsort(string sortname,void(*sortn)(T [],int),T arr[],int n) {//传入一个数组的名字,排序数组的数字,待排序数组的指针以及数组的大小n clock_t starttime=clock();//cloce_t为循环周期变量 sortn(arr,n); clock_t endtime=clock(); assert(issorted(arr,n));//检测数组是否成功排序,防止计算错误的时间 cout<<sortname<<":"<<double(endtime-starttime)/CLOCKS_PER_SEC<<"s"<<endl; //clock_t为循环周期个数,用其除以每个循环周期所花费的时间(CLOCK_PER_SEC),则得到时间 return; }
测试10000个数据所花费的时间:
测试100000个数据所花费的时间
第一次测试10000个数据所花费的时间为0.139s,测试100000个数据所花费的时间为13.276s,因此我们不难发现,数据的量数增长到10倍,而所花费的时间却增长到100倍(13.276/0.139=100),因此该选择排序的算法复杂度为O(N2).
阅读全文
0 0
- 增加测试函数计算排序函数运行时间
- 函数运行时间计算
- 计算函数运行时间
- 计算函数运行时间
- 测试函数运行时间
- 测试函数运行时间
- 计算某函数运行时间
- C计算函数运行时间
- 计算函数的运行时间
- 计算程序/函数运行时间
- Matlab 计算程序运行时间函数
- 计算php页面运行时间的函数
- 计算程序运行时间的函数clock()
- 利用microtime()函数计算程序运行时间
- python装饰器计算函数运行时间
- golang一行代码计算函数运行时间
- Python计算函数的运行时间
- 计算程序运行时间函数的选择
- API认证方式
- Coursera machine learning week 6(一)
- 3章 文件I/O
- 简单排序
- 航院 6213 Chinese Zodiac
- 增加测试函数计算排序函数运行时间
- Java解析属性配置文件并给占位符传参
- Apache XBean 简单介绍
- Linux使用-小程序hello world
- 【总结】--机房合作--界面
- Request对象的主要方法
- anaconda详解
- webservice实现步骤
- SE homework 1