当前位置: 首页>>数据结构与算法>> 阅读正文

数据结构之堆

Category: 数据结构与算法 View: 359,967 Author: Dong
, ,

  • 评论 (9)
  • 引用通告 (0)
发表评论 发起引用

  • 1楼fororz 回复

    Post: 2012-06-01 22:23

    写得很易懂
    实现也很简洁

    发现了一些小问题

    RIGHT(t):节点t的左孩子节点,即:2*t
    LEFT(t):节点t的右孩子节点,即:2*t+1
    RIGHT(t)与LEFT(t)写反了

    Heapify(A,n,t)中
    if(max!=A[t])
    改为
    if(max!=t)

    BuildHeap(A,n)中
    for(i=n/2;i=1;i–)

    GetMaximum(A,n)中
    void
    改为
    A的数据类型

    Insert(A,n,t)中
    去掉
    return max;

    [回复]

  • 2楼kasuosou 回复

    Post: 2012-08-07 09:09

    lz出现了一个小错误,应该是:
    从小到大排序,使用大顶堆;从大到小排序,使用小顶堆。

    [回复]

    Dong 回复:

    是的,谢谢改正!

    [回复]

  • 3楼nana 回复

    Post: 2012-08-16 02:23

    好文章,对堆很好的一个总结!

    [回复]

  • 4楼八度 回复

    Post: 2012-12-10 04:37

    关于那个buildheap函数,for循环是否应该是for(i = n/2;i>0;i–)或是for(i = 1;i<=n/2;i++)?

    [回复]

    Dong 回复:

    这个真的不可以!

    [回复]

    jfd 回复:

    你这个确实写错了.应该向0方向(根节点)调整 人家回复得对. 你检查一下.
    另外你这套程序没有使用a[0] , 常用C的表示感觉有些奇怪.

    [回复]

    Dong 回复:

    en ,shide , 我看错了!

    [回复]

  • 5楼往事如风 回复

    Post: 2013-02-20 00:15

    上面人回复的i–还是没改呀!

    [回复]

  • 6楼Dong 回复

    Post: 2013-02-20 01:01

    不用改,大家都会看评论的,呵呵。 另外,如果一个读者连你说的错误都没发现,说明他没弄懂这个数据结构,如果看懂了就会发现,所以,不改反而更好。谢谢你!

    [回复]

    怒草的青春 回复:

    楼主用心险恶啊

    [回复]

  • 7楼hao 回复

    Post: 2013-05-15 02:19

    楼主还是改过来吧,不然把文章弄的混淆概念了,对读者不太好。

    [回复]

  • 8楼Torstan 回复

    Post: 2013-11-07 02:35

    为啥 好一点的算法书上都写得很清楚,分析得很透彻的东西,你写出来,会有这么多人看?

    [回复]

    Dong 回复:

    简单明了。另外,我这个是一个系列,风格一致,读了我这个系列,基本上不用看其他书了。

    [回复]

    Torstan 回复:

    算法的精髓是 证明算法的正确性,您好像省略了这个。。有点不够严谨啊,呵呵

    [回复]

    Dong 回复:

    严谨到有证明,估计没人看了。 大家主要关注的还是what,how,不是why。算法证明太数学化。

    [回复]

    Torstan 回复:

    算法证明就是算法的门槛。

    建议你去听一下:My advice to young people – Donald Knuth [video]
    http://www.youtube.com/watch?v=75Ju0eM5T2c

    另外:好像你把什么是堆没讲清楚。。

    [回复]

    Dong 回复:

    呵呵,多谢,没讲清楚就对了。

    [回复]

    Torstan 回复:

    你的文章中提到:“堆是一棵完全二叉树。”

    我看的书上说:heap is an essentially complete binary tree.
    至于什么是complete binary tree,
    网上也有争论:
    http://www.physicsforums.com/showthread.php?t=74504

    [回复]

  • 9楼Leith 回复

    Post: 2014-04-17 02:49

    博主讲的是堆的变体–二叉堆吧。二项堆就不是一颗完全二叉树。

    [回复]

目前还没有任何Trackbacks和Pingbacks.
发表评论