对于该算法的复杂性。一个直接的方法是测量的一定量的算法级数据的执行时间的感知。

随着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函数算法性能测试的更多相关文章

  1. C语言qsort()函数的使用

    C语言qsort()函数的使用 qsort()函数是 C 库中实现的快速排序算法,包含在 stdlib.h 头文件中,其时间复杂度为 O(nlogn).函数原型如下: void qsort(void ...

  2. C语言qsort函数用法

    qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...

  3. CGO封装C语言qsort函数

    封装qsort函数 package qsort /* #include <stdlib.h> typedef int (*qsort_cmp_func_t) (const void* a, ...

  4. C语言qsort()函数的实现

    #include <stdio.h> void qsort(void * base, int num, int width, int (*comp)(const void *, const ...

  5. 【严蔚敏】【数据结构题集(C语言版)】1.17 求k阶斐波那契序列的第m项值的函数算法

    已知k阶斐波那契序列的定义为 f(0)=0,f(1)=0,...f(k-2)=0,f(k-1)=1; f(n)=f(n-1)+f(n-2)+...+f(n-k),n=k,k+1,... 试编写求k阶斐 ...

  6. c语言中qsort函数的使用、编程中的一些错误

    qsort()函数: 功能:相当于c++sort,具有快排的功能,复杂度的话nlog(n)注:C中的qsort()采用的是快排算法,C++的sort()则是改进的快排算法.两者的时间复杂度都是nlog ...

  7. qsort函数、sort函数【转】

    http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...

  8. C中的qsort函数和C++中的sort函数的理解与使用

    一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...

  9. qsort函数用法【转】

    qsort函数用法 qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(con ...

随机推荐

  1. 同台交换机同样VLAN能够通信,不同VLAN不可通信

    一.示意图 二.IP规划 PC0:192.168.0.100  255.255.255.0        PC1:192.168.0.110  255.255.255.0        PC2:192 ...

  2. 产品CEO?别傻了,你不是拿破仑

    编者按:本文出自技术产品经理Daniel Elizalde的博客,中文版由天地会珠海分舵进行编译. 全文针对如今流行的把产品经理比喻成"产品CEO"的这一说法进行深入的分析.跟大家 ...

  3. 【C语言探索之旅】 第二部分第九课: 实战"悬挂小人"游戏 答案

    内容简介 1.课程大纲 2.第二部分第九课: 实战"悬挂小人"游戏 答案 3.第二部分第十课预告: 安全的文本输入 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题, ...

  4. React-Native入门

    React-Native入门指导之iOS篇 React-Native 入门指导系列教程目录 一.准备工作 (已完成) 二.项目介绍与调试 三.CSS样式与Flex布局 四.常用UI控件的使用 五.JS ...

  5. C# - is

     Checks if an object is compatible with a given type. An is expression evaluates to true if the pr ...

  6. Ozmosis实现BIOS直接启动Yosemite,基本完美

    我的主板是 技嘉 z97 d3h,共享一下我制作好的  Ozmosis

  7. [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)

    原文:[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [ ...

  8. 使用WindowManager添加您自己的自定义视图

    在写手机卫士的时候,用户拨打|接听电话须要显示号码归属地,然后出现了一些异常,在此留下记号.希望对麻友们有帮助: BUG教程 在使用 view = View.inflate(this, R.layou ...

  9. 在高德地图应用api,和api展出的标记小的应用程序

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  10. 父类中可继承方法在处理private的一个demo

    public abstract class AbstractParent { public AbstractParent() { System.out.println("Hello,pare ...