- 4
- 0
- 约1.77万字
- 约 26页
- 2022-02-22 发布于吉林
- 举报
28|堆和堆排序:为什么说堆排序没有快速排序快?
28|堆和堆排序:为什么说堆排序没有快速排序快?
“ ” $Heap$ $O(n\log
我们今天讲另外一种特殊的树, 堆 ( )。堆这种数据结构的应用场景非常多,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为
n)$的排序算法。
前面我们学过快速排序,平均情况下,它的时间复杂度为$O(n\log n)$。尽管这两种排序算法的时间复杂度都是$O(n\log n)$ ,甚至堆排序比快速排序的时间复杂度
还要稳定,但是,在实际的软件开发中,快速排序的性能要比堆排序好,这是为什么呢?
现在,你可能还无法回答,甚至对问题本身还有点疑惑。没关系,带着这个问题,我们来学习今天的内容。等你学完之后,或许就能回答出来了。
“ ”
如何理解 堆 ?
前面我们提到,堆是一种特殊的树。我们现在就来看看,什么样的树才是堆。我罗列了两点要求,只要满足这两点,它就是一个堆。
堆是一个完全二叉树;
您可能关注的文档
- 春节7天练Day2:栈、队列和递归.pdf
- 用户故事Jerry银银:这一年我的脑海里只有算法.pdf
- 春节7天练Day7:贪心、分治、回溯和动态规划.pdf
- 用户故事zixuan:站在思维的高处,才有足够的视野和能力欣赏“美”.pdf
- 春节7天练Day1:数组和链表.pdf
- 开篇词从今天起,跨过“数据结构与算法”这道坎.pdf
- 10递归:如何用三行代码找到“最终推荐人”?.pdf
- 09队列:队列在线程池等有限资源池中的应用.pdf
- 08栈:如何实现浏览器的前进和后退功能?.pdf
- 07链表(下):如何轻松写出正确的链表代码?.pdf
- 27递归树:如何借助树来求解递归算法的时间复杂度?.pdf
- 26红黑树(下):掌握这些技巧,你也可以实现一个红黑树.pdf
- 25红黑树(上):为什么工程中都用红黑树这种二叉树?.pdf
- 24二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?.pdf
- 23二叉树基础(上):什么样的二叉树适合用数组来存储?.pdf
- 22哈希算法(下):哈希算法在分布式系统中有哪些应用?.pdf
- 21哈希算法(上):如何防止数据库中的用户信息被脱库?.pdf
- 20散列表(下):为什么散列表和链表经常会一起使用?.pdf
- 18散列表(上):Word文档中的单词拼写检查功能是如何实现的?.pdf
- 17跳表:为什么Redis一定要用跳表来实现有序集合?.pdf
原创力文档

文档评论(0)