C语言qsort函数算法性能测试

来源:本站
导读:目前正在解读《C语言qsort函数算法性能测试》的相关信息,《C语言qsort函数算法性能测试》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言qsort函数算法性能测试》的详细说明。
简介:本文主要介绍C语言qsort函数算法性能的测试,感性趣的朋友可以看看。

对于算法的复杂度,一种直观感知方法是测量一定数量级数据的算法运行时间。

以C语言提供的qsort为例子,以100万数据量测试其计算时间,可感知O(nlg(n))的时间代价:

C代码如下:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define N 1000000

//int (*Comp)(const void *,const void *)

int compare(const void *p1, const void *p2) {

return *(float*)p1 > *(float*)p2;

}

int main()

{

float x[N];

srand( time(NULL) );

clock_t t1 = clock();

for(int j = 0; j < 10; j++) {

for(long i = 0; i < N; i++)

x[i] = (float)rand()/RAND_MAX;

qsort(x, N, sizeof(float), compare);

}

for(int i = 0; i < 10; i++)

printf("%f ", x[i]);

printf("n");

clock_t t2 = clock();

printf("浮点数排序算法用时:%f 秒n", (double)(t2 - t1)/ CLOCKS_PER_SEC);

return 0;

}

在笔记本上用gcc qsort_test.c编译和运行,10次100万数据随机生成和排序用时结果为:

~/tmp$ ./a.out

0.000000 0.000001 0.000001 0.000002 0.000002 0.000004 0.000004 0.000005 0.000006 0.000006

浮点数排序算法用时:2.236941 秒

提醒:《C语言qsort函数算法性能测试》最后刷新时间 2024-03-14 00:59:11,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言qsort函数算法性能测试》该内容的真实性请自行鉴别。