漂亮的排序算法:7种排序算法的内存状态演示
icon2 Design of Design | icon4 2009-04-20 16:27| icon333 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com

昨天我突发奇想,写了几段Mathematica代码,生成了各种排序算法的内存变化图。图中每一个新的横行都表示数组的一次更新,数字大小用颜色来表示。你可以直观地看到这些算法是如何把乱序数组一点一点变为有序的。效果还是很令人满意的,不少算法的内存轨迹都相当美观,相当有艺术性。

图很大,我就不在首页上显示了,大家点“查看更多”看图吧。

 

33 条回复

  • 楼层: 沙发 | | XieXnot 说:

    我的sf...

  • 楼层: 板凳 | | kangaroo 说:

    这样也可以看出来算法的效率吧~

  • 楼层: 地毯 | | Velicue 说:

    Gut!

  • 楼层: 地板 | | menie 说:

    bubble sort还有种分形的感觉。。

  • 楼层: 地下室 | | sdyy1990 说:

    还是bogo最可爱。

  • 楼层: 地基 | | Velicue 说:

    bogosort....

  • 楼层: 地壳 | | key 说:

    - -!

  • 楼层: 地幔 | | yupbank 说:

    额。。什么软件哦?
    还有黑和白分别代表?

  • 楼层: 地核 | | brute 说:

    晕,那么少的数,bogosort还要那么多次
    要是再大一点,我都不知道bogosort能不能在我这辈子让我看到排序结果

  • 楼层: 10楼 | | shellex 说:

    这个类似: http://cocre.com/?p=536

  • 楼层: 11楼 | | annixhong 说:

    酷啊,我以前用Java做过一个排序算法的动态演示,不过演示没这个直观啊,哈哈

  • 楼层: 12楼 | | hplonline 说:

    又学到一种排序。。
    bogosort (also random sort, shotgun sort or monkey sort)

  • 楼层: 12a楼 | | 燕仰 说:

    bubble那个好有feel~~

  • 楼层: 14楼 | | ForEverLeeR 说:

    估计这个东西是不能体现算法效率的了....选择排序的内存操作那么短,估计是用了链表实现的,对内存的操作很少。

  • 楼层: 15楼 | | 笑笑 说:

    bogo的时间也太长了。。。

  • 楼层: 16楼 | | est 说:

    投递到 reddit 了

    http://www.reddit.com/r/programming/comments/8dv27/memory_visualization_of_sorting_algorithms/

  • 楼层: 17楼 | | Izual_Yang 说:

    bogo的效率是不是就等于穷举了……

  • 楼层: 18楼 | | pchu 说:

    膜拜bogo.......
    没人觉得stooge才最分形的感觉吗?

  • 楼层: 19楼 | | gnaggnoyil 说:

    qsort是random qsort吗?

  • 楼层: 20楼 | | crazylamb 说:

    这段mathematica代码怎么写的?...

  • 楼层: 21楼 | | jayhaizeizai 说:

    选排的一下就看懂了
    Bogo很费解

  • 楼层: 22楼 | | NULL 说:

    bogo……刚才google查了一下,貌似是基于随机穷举的?
    于是明白其时间复杂度了……

  • 楼层: 23楼 | | NULL 说:

    修正一下上面的留言,其实图的长度并不能代表时间复杂度,因为每一次数组更新所用的时间没有在其中表示……

    不过即使这样还是能看出来bogo还是相当的糟糕。膜拜之……

  • 楼层: 24楼 | | fracting 说:

    让人联想到细胞自动机和Wolfram 的A New Kind of Science。。。

  • 楼层: 25楼 | | oMyGod 说:

    下面这个网站还可以动态显示排序变化
    http://www.sorting-algorithms.com/

  • 楼层: 26楼 | | Zx.MYS 说:

    bogosort,哈哈

  • 楼层: 27楼 | | victorlee129 说:

    heap呢?
    最强大的heap呢?
    还有红黑树或avl插入+遍历的排序呢?

  • 楼层: 28楼 | | lily 说:

    好啊

  • 楼层: 29楼 | | hi.nil 说:

    0.-

  • 楼层: 30楼 | | Matrix67: My Blog » Blog Archive » 我所见过的最酷的排序算法演示 说:

    [...] 网上有各种直观的排序算法图形化演示(见这里和这里),我自己也曾经做过一个。 今天我看到了一个我所见过的最酷的、最可爱的排序算法演示。 某网站被干掉了后,大家会错过很多精彩的视频。我注册了一个土豆网的帐号,把一些精彩的视频搬过来与大家分享。 [...]

  • 楼层: 31楼 | | soon 说:

    经典啊。

  • 楼层: 32楼 | | sai901013 说:

    連stooge也有- -囧..

  • 楼层: 33楼 | | Matrix67: My Blog » Blog Archive » 聆听排序算法的声音 说:

    [...] 在网上偶然看到这篇文章,决定把之前创作排序算法内存状态演示图所用的Mathematica程序修改一下,于是搞出来5个midi音乐。这些midi文件用音高来表示内存状态,初始时的音都是乱的,然后声音渐渐变得有序,最后就成了从低到高的一串音符。 [...]

您也随便说几句吧:

您可以在 Gravatar 设置您的头像。