那个堆排序的算法要求写么?

老郁闷了,看书上写的调整方法,有图在我可以排出来,不过如果让我看那个代码,我死的心都有了,NND,堆排序的算法能算上DS最难的算法了吧。。。。

第1个回答  2016-04-03
那个堆排序的算法不需要写。
第2个回答  2014-06-28
记得上次去百度面试让我现场写了堆排序,堆排序其实真心很简单,代码非常简洁,比桶排序基数排序什么的都还要容易写,你不妨从以下几个角度理解1.使用数组表示完全二叉树的方法,如何访问父节点,访问子节点,如何判断叶子2. 理解sift-up和sift-down两个操作,其实就是不断的向上或者向下比较并交换,直到根节点或者叶子节点。3.建堆其实只需要n/2次sift-down或者sift-up操作即可4.排序其实就是把堆顶元素移到最终位置,并把堆大小减1,然后sift-up或者sift-down就可以了。耐着点性子去理解算法,其实建堆和堆的调整的相关操作是贪心算法的重要的一个工具,如果不懂堆,如何写出贪心类算法?贪心是各种算法题目的一个基础类型,比如霍夫曼编码其实就是贪心算法,肯定是要会写的。试着从算法设计思想的角度去理解算法,才能吃透。 查看原帖>>

求采纳本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网