![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 75
己卯少一天
菜到安详
展开
-
【刷HOT100】——【基础】快速排序
快速排序是一种经常被用到的排序算法,许多语言中的sort函数也是基于快速排序实现的。因此在面试中,时常会看到要求手写快速排序的题目。时间复杂度O(nlogn)快速排序的主要思路为:选择一个数selected作为界限,我们的目标是在完成一轮排序后,数组左边的值都小于这个选定的数,数组右边的值都大于它。设置两个指针分别在最左和最右。若左右指针未到达同一位置则循环(while(left<right)),对于右侧指针不断左移,如果指向的value[right]<selected则停止循环,因原创 2021-03-09 00:37:39 · 176 阅读 · 0 评论 -
【刷HOT100】——堆排序
本栏为本人的LeetCode做题记录,题解均来自LeetCode题解,难懂的地方加入自己的理解。相关例题【原题链接】347.前K个高频元素相关知识博客暂无知识点——堆排序首先介绍堆这种数据结构,堆是一种完全二叉树,分为大顶堆和小顶堆。顾名思义,大顶堆就是所有父结点的值大于等于孩子结点的值组成的树,小顶堆就是所有父结点小于等于孩子结点的值组成的树。画个图这个概念将非常明确。下图为一个大顶堆,注意堆的以下几个特性:1. 父节点大于等于子节点2. 兄弟结点之间的大小无法比较3. 作为完全二.原创 2021-03-05 00:22:29 · 236 阅读 · 4 评论