选择排序函数的计时程序
来源:互联网 发布:java反射原理 编辑:程序博客网 时间:2024/05/18 13:04
上文中给大家介绍了两种计时函数,在这里便使用这两个函数进行选择排序函数在最坏情况下的性能测量。
选择分类的最坏情况出现在元素逆序排列时。也就是说,当对元素按降序排列的数组进行升序排列的时候。为进行计时测量,数组的大小分别选择0,10,20,···,90,100,200,···,1600.下面代码给出了用于实施计时程序的代码。
为了进行计时测试,使用一个 for 循环来控制数组的大小。在每次迭代的时候,产生一个新的包含 sizelist[ i ] 个元素的逆序数组。在调用函数 sort 前以及调用 sort 函数返回时,都调用函数 clock 。本程序在vs2013上编译通过。
#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_SIZE 1601#define ITERATIONS 26#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))void sort(int[],int);void main(void){int i, j;int list[MAX_SIZE];int sizelist[] = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90,100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100,1200, 1300, 1400, 1500, 1600 };double span;clock_t start, stop;printf(" n time\n");for (i = 0; i < ITERATIONS; i++){for (j = 0; j < sizelist[i]; j++)list[j] = sizelist[i] - j;start = clock();sort(list, sizelist[i]);stop = clock();span = ((double)(stop - start));printf("%6d %f\n", sizelist[i], span);}system("pause");}void sort(int list[], int n){int i, j, min, temp; for (i = 0; i < n - 1; i++){min = i;for (j = i + 1; j < n; j++){if (list[j] < list[min])min = j;}SWAP(list[i], list[min], temp);}}参考:Fundamentals of Data Structures in C
0 0
- 选择排序函数的计时程序
- C++程序计时函数
- C++程序计时函数
- VC计时的程序
- 总结一下C/C++程序中几种常用的计时函数
- 有用的计时函数
- 选择合适的排序函数()
- C#时间函数(程序运行计时,页面运行计时)
- 如何实现程序的计时
- Linux下的计时函数
- Matlab计时函数的使用
- c++ 计时函数的使用
- C语言的计时函数
- 排序,计时
- 程序计时
- 程序计时
- 计时程序
- 程序计时
- Sicily 1048. Inverso
- 实现字符串循环右移n 位与左移n位(不建立数组,直接用指针)
- hdu 1716 排列2(全排列+dfs)
- 【c语言】判断1000年---2000年之间的闰年
- linux常用基本命令
- 选择排序函数的计时程序
- 在xcode系统的库文件里面进行了操作造成的bug
- Android HAL实例解析---LED
- jQuery插件开发全解析
- Sicily 1118. War on Weather
- 【c语言】计算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值
- 第三周项目5-2:利用动态数组建立职工工资
- <Unity3d学习笔记一>编辑器结构
- Sicily 1100. Tennis Anyone?