各种排序算法的可视化展现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种排序算法的可视化展现相关的知识,希望对你有一定的参考价值。
前言
排序算法(Sorting algorithm)是一种能将一串数据依照特定排序方式的最基本最常用的算法,常见的有冒泡排序、快速排序、插入排序、二叉树排序等等,下面这个表格总结了各种排序算法的复杂度与稳定性:
不同的场景对排序算法的选择有着不同的要求,对每种排序算法的深入理解能帮助我们更好地选择合适的算法。关于排序算法的理论书籍或博客已经非常的多,下面列举一些可视化的排序展示,换种方式看算法,以一种更直观的方式理解排序算法的工作原理。
一、SORTING
SORTING 支持同时查看对比多个排序算法,在进行排序时,每一个步奏都会被记录,故可以进行前进、后退、暂停等操作,非常适合理解不同排序算法的区别。
该项目的作者是Carlo Zapponi,他在sorting.at这样描述该项目的起源:“SORTING was born to create visual representations of sorting algorithms with the hope of finding visual patterns. ”
如果上面单单图像动画还不够过瘾,那么可以看看这个带声音的排序展示:15种排序算法可视化展示(优酷链接,源视频见YouTube)。
视频中的演示程序及其源码都可以可以在其项目主页中找到,作者给出了详细的说明,下图为演示程序界面。
三、还有排序的舞蹈视频
罗马尼亚Sapientia大学制作了一系列用舞蹈形式表现的各种排序算法的工作原理,舞跳得很有名族风情嘿嘿:
总共是六种排序算法六个视频,希尔排序、选择排序等等,详情请戳:让程序员抓狂的排序算法教学视频。
最后一个是国外大牛Mike Bostock对算法的酷炫的描述,2014年6月他发表了一篇长长的文章,从梵高的名画到迷宫的生成,尽述算法的可视化。
译文见:算法可视化
(本文地址:http://www.cnblogs.com/zeakhold/p/5331885.html )
以上是关于各种排序算法的可视化展现的主要内容,如果未能解决你的问题,请参考以下文章