DS001-Prueba de tiempo de ejecución de clasificación de burbujas

Este programa demuestra cómo probar el tiempo de ejecución de un programa.

Tome el algoritmo de clasificación de burbujas como ejemplo.

#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;
}

 resultado de la operación:

Entre ellos, la primera columna es el número de datos y la segunda columna es el tiempo de ejecución de la clasificación de burbuja correspondiente.

Usando la primera columna como abscisas y la segunda columna como ordenadas, haga un gráfico de dispersión en Excel:

La figura es similar a la forma de la función y = n * n.

La complejidad temporal del algoritmo, en notación O, es exactamente: O (n * n)

Supongo que te gusta

Origin blog.csdn.net/weixin_43917370/article/details/108328981
Recomendado
Clasificación