搜索

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

gecimao 发表于 2019-06-10 14:55 | 查看: | 回复:

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

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

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

本文链接:http://baumseelen.com/duipaixu/553.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部