`
RednaxelaFX
  • 浏览: 3017627 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

几种排序算法的性能的统计图

阅读更多
好久没发点有趣的东西了,今天发个来看看。

上个星期raven给了我一组有趣的统计图。跟大家分享下吧~

下面是对几种排序算法的性能的统计图。
x轴是输入数组的大小,从1000到10000;y轴是消耗的时间,单位为ms。
每条统计线所代表的排序算法如底部的图例所示。

每张图代表一种输入类型的状况。
Sorted表示输入是已经排好序的(按照从小到大),
almost-sorted表示大约有20%的元素是不符合顺序的,
reverse表示顺序是颠倒的(按照从大到小排序),
random表示随机的输入。

看不到大图的请点击放大。









可以看到,有好几种排序算法在这个统一坐标上都看不出什么端倪(相对来说太快了……),
而selection sort则很稳定的呈现出平方级的增长。


把坐标轴重新设定一次,再看看状况如何:
(注释:
Shellsort-A采用的是Shell提出的数列,从floor(N/2)开始每次除以2;
Shellsort-B采用的是另一种数列,从floor(N/2)开始每次除以3。
Quicksort-A是采用输入数组在中间位置的元素为分隔点;
Quicksort-B是采用median-of-three为分隔点;
Quicksort-C是采用median-of-five为分隔点;
Quicksort-D是采用输入数组的实际中值为分隔点










raven同学或许过段时间会把题目和代码都放出来吧。这家伙最近也是忙。
更新:raven同学发帖了,http://ravenex.iteye.com/blog/175557。要看源代码的去那里看……

统计实验是在这样的配置上:
Pentium 4 HT 3.20GHz
1GB DDR
JRE 1.6.0 update 3
不知道为什么,无论怎么调节实验次数的参数,出来的结果都会很“抖”。
我在我的老笔记本上也跑过这个实验,就一点都不“抖”,但是比这里的图要慢多了。

P.S. 统计图是用JFreeChart画的。呼,这库我2年前用得快吐血了……源码开放,文档要卖钱,这算盘打得真是响当当的。
16
10
分享到:
评论
5 楼 RednaxelaFX 2008-03-24  
OK,raven同学发了帖了,在这里:http://ravenex.iteye.com/blog/175557
要看题目和源代码的去那里看嗯
4 楼 RednaxelaFX 2008-03-22  
我这边现在也没有完整的source,在raven同学那边。过一两天吧。等他发了我这边也加个链接过去。
3 楼 peterwillcn 2008-03-22  
提供下源码。。学习。。。谢谢   支持 java 的开源..
2 楼 BEA 2008-03-21  
我一直在学习这个,真的挺好的!
1 楼 lwwin 2008-03-20  
下載了看……
其實很希望有真實的數據,想知道是怎樣統計的數據呢?
這很有趣=3=

相关推荐

    算法引论:一种创造性方法.[美]Udi Manber(带详细书签).pdf

    6.2 二叉搜索的几种形式 6.2.1 纯二叉搜索 6.2.2 循环序列的二叉搜索 6.2.3 二叉搜索特殊下标 6.2.4 二叉搜索长度未知的序列 6.2.5 重叠子序列问题 6.2.6 解方程 6.3 内插搜索 6.4 排序 6.4.1 桶排序和...

    算法导论(part2)

    8.1 排序算法时间的下界 8.2 计数排序 8.3 基数排序 8.4 桶排序 第9章 中位数和顺序统计学 9.1 最小值和最大值 9.2 以期望线性时间做选择 9.3 最坏情况线性时间的选择 第三部分 数据结构 引言 第10...

    Algorithms:资料库课程及其实现(在Python中),并介绍了几种计算,数学和统计算法

    存储库课程,包括实现(在Python中)和几种计算,数学和统计算法的描述。 尽管它不打算一本正式的书,但我们还是尽量忠实于原始算法,只是在出于教学目的而必须使用变体的情况下,才添加这些变体。 什么是算法? ...

    去燥算法(多种)

    中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值...

    算法导论(part1)

    8.1 排序算法时间的下界 8.2 计数排序 8.3 基数排序 8.4 桶排序 第9章 中位数和顺序统计学 9.1 最小值和最大值 9.2 以期望线性时间做选择 9.3 最坏情况线性时间的选择 第三部分 数据结构 引言 第10...

    A*算法求解八数码问题_C#语言

    下图是解决随机生成的100中状态中,P(n)生成函数的生成节点与扩展节点统计图: 由上图可知,P(n)作为启发函数,平均生成节点数大约在1000左右,平均扩展节点数大约在600左右; 下图是解决随机生成的100中状态中,...

    论文研究-基于多阈值弱学习的Adaboost检测器.pdf

    在研究图像中值滤波及其快速算法的基础上,设计并实现了一种新的...算法分析与大量实验结果表明,该算法不仅大幅度提高了图像中值滤波速度,并且比其他几种快速算法更大程度地保留了图像的边缘、轮廓及纹理等各种信息。

    历届系统分析师考试数学知识点细分统计

    2000 15 合并排序排序算法的时间复杂度 1999 15 排序算法时间复杂度问题 2002 65 程序的时间复杂度 2003 62~63 排序比较次数及时间复杂度 1990 7 有限自动机 1990 8 排列组合问题,二元关系, 1991 13 Chomsky形式...

    IOI国家集训队论文集1999-2019

    龙 翀 -《解决空间规模问题的几种常用的存储结构》 骆 骥 -《数学模型的建立和选择》 施 遥 -《人工智能在围棋程序中的应用》 肖 洲 -《数据结构的在程序设计中的应用》 谢 婧 -《规模化问题的解题策略》 徐 串...

    二级C语言公共基础知识

    (31) 算法一般都可以用哪几种控制结构组合而成______。(D) A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据的存储结构是指______。(B) A. 数据所占的存储空间量 B. ...

    计算机二级C语言考试题预测

    (54) 在下列几种排序方法中,要求内存量最大的是(D) 注:要牢记,书中没有提到。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是(A) 注:和设计风格有关 A. 程序结构应有...

    java自学之道

    3.3 快速排序算法 3.4选择排序算法 3.5直接插入算法 3.6希尔排序算法 3.7 二分查找算法 3.8 二叉树 3.9 图的实现 3.10 生产者消费者的实现 3.11 银行家算法 3.12 KMP算法 3.13 RSA的实现 第4章 IO流实例开发 4.1流...

    《MATLAB R2016a在电子信息工程中的仿真案例分析》源码

    20.1常用的几种联想学习规则 20.1.1内星学习规则 20.1.2外星学习规则 20.1.3科荷伦(Kohonen)学习规则 20.1.4阈值学习规则 20.2自组织竞争神经网络的结构 20.3自组织竞争神经网络的设计 20.3.1网络初始化 ...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    8.1 比较R 和MapReduce 集成的几种方法 8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值 8.3.2 Streaming、R 和完整的MapReduce 技术点58 计算股票的...

    Hadoop实战(第2版)

    join 7.3 本章小结8 结合R 和Hadoop 进行数据统计8.1 比较R 和MapReduce 集成的几种方法8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值8.3.2 Streaming...

    易语言模块914个

    和是几与谁最大.ec 响应左键放开.ec 四则混合运算模块.ec 回调函数.ec 图形窗口模块.ec 图片演示-西风.EC 图片演示.EC 图片组操作类.ec 在线更新.ec 在线更新2.ec 在线查找歌词.ec 地理位置查询.ec 堕...

    c语言实战105例源码

    16 常用的几种排序方法  17 广度优先搜索及深度优先搜索  18 实现基本的串操作  19 计算各点到源点的最短距离  20 储油问题  21 中奖彩球问题  22 0-1背包问题  24 二叉树算法集  25 模拟...

Global site tag (gtag.js) - Google Analytics