【排序算法】番外:随机生成数据代码,比较排序性能


在我们的排序算法章节中使用到的 随机数生成,用于比较 各种排序算法的性能
使用的都是下面的 随机数生成与计算时间器


注意:计算算法性能时,速度大小还和你的电脑状态有关(电脑此时性能好,则速度可能会快一点,而电脑性能在不同时间段可能会稍微不同),因此在不同时间段,同一排序算法性能可能会出现些许变化,是正常的


声明
clock 函数 为 记录该程序执行开始的时间点
int begin = clock(); 记录开始的时间
int end = clock(); 记录结束的时间
end - begin 就是中间排序算法的执行时间,单位是 ms



下面代码只是给一个形式,具体使用可以自己添加或删除,明白思路就好

// 测试排序的性能对比
#include<time.h> // 记得加头文件
void TestOP()
{
	srand(time(0));
	const int N = 1000000;  // 这里自定义你想要的 数据量
	// 动态开辟相应大小的数组
	int* a1 = (int*)malloc(sizeof(int) * N);
	int* a2 = (int*)malloc(sizeof(int) * N);
	int* a3 = (int*)malloc(sizeof(int) * N);
	int* a4 = (int*)malloc(sizeof(int) * N);
	int* a5 = (int*)malloc(sizeof(int) * N);


	for (int i = 0; i < N; ++i)  // 随机生成N个数据,放进数组
	{
		a1[i] = rand();
		a2[i] = a1[i];
		a3[i] = a1[i];
		a4[i] = a1[i];
		a5[i] = a1[i];
	}


	// clock 函数 为 记录该程序执行开始的时间点
	// int begin = clock(); 记录开始的时间
	// int end = clock();  记录结束的时间
	// end - begin 就是中间排序算法的执行时间,单位是 ms
	int begin1 = clock();
	InsertSort(a1, N);
	int end1 = clock();

	int begin2 = clock();
	ShellSort(a2, N);
	int end2 = clock();

	int begin3 = clock();
	HeapSort(a3, N);
	int end3 = clock();

	int begin4 = clock();
	QuickSort(a4, 0, N - 1);
	int end4 = clock();

	int begin5 = clock();
	BubbleSort(a5, N);
	int end5 = clock();

	
	printf("InsertSort:%d\n", end1 - begin1);
	printf("ShellSort:%d\n", end2 - begin2);
	printf("HeapSort:%d\n", end3 - begin3);
	printf("QuickSort:%d\n", end4 - begin4);
	printf("BubbleSort:%d\n", end5 - begin5);
	

	free(a1);
	free(a2);
	free(a3);
	free(a4);
	free(a5);
}



🫡至此,本章完结!

【若文章有什么错误或则可以改进的地方,非常欢迎评论区讨论或私信指出】

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值