DS001-测试冒泡排序的运行时间

本程序演示如何测试一段程序的运行时间。

以冒泡排序算法为例。

#include "time.h"   //与时间相关的函数
#include "stdlib.h"   //rand()函数在此库中
#include "stdio.h" //输入输出相关函数 
void BubbleSort(int *a, int n)
{//冒泡排序, a是指针,代表连续空间的首地址,n表示有n个元素
	for(int i=1;i<=n-1;i++)
	{
		for(int j=0;j<=n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				int t;
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
}

int main(  )
{
	time_t start, stop;
	int n;
	int data_num[]={10000,30000,60000,90000};//问题规模 
	int j;
	for(j=0;j<4;j++)
	{
		n=data_num[j];//问题规模 
		int a[n]={0};
		for(int i=0;i<n;i++)
			a[i]=rand();
		
	    start=time (0);	//单位是秒
		BubbleSort(a,n);
		stop=time (0);			
		time_t runTime = stop - start;
		printf ( "%d %d\n" , n,runTime );
	}
	return 0;
}

 运行结果:

其中,第一列是数据的个数,第二列是对应冒泡排序的执行时间。

以第一列为横坐标,第二列为纵坐标,在Excel中作散点图:

该图形跟 y=n*n 函数的形态相似。

该算法的时间复杂度,用O表示法恰是:O(n*n)

猜你喜欢

转载自blog.csdn.net/weixin_43917370/article/details/108328981