tag_排序
文章平均质量分 62
常见力扣排序算法题
菜菜的大数据开发之路
Java技术栈 AND 大数据开发,学习笔记, 拒绝水文
展开
-
4.<tag-排序和TopK问题的三种典型解法>补充: 面试题 17.14. 最小K个数 + lt.215-数组中的第K个最大元素 dbc
TopK问题很普遍, 解题套路也很简单, 无非就是排序, 运用最基础的排序(如Array.sort(nums))复杂度为nlogn, 或者使用堆, 复杂度为nlogk,或者在快排的基础上进行减治详细参见此文:对原数组从小到大排序后取出前K个数即可;我们,首先将前k个数插入到大根堆中, 随后从第k+1个数开始遍历,如果当前遍历到的数比大根堆的堆顶的数要小, 就把堆顶的数弹出, 再插入到当前遍历到的数,最后将大根堆的数存入到数组返回即可.注意, 之所以使用是因为, 每次都是,原创 2022-10-09 16:25:02 · 587 阅读 · 0 评论 -
tag排序-刷题预备知识-2. TopK 解法总结, Java实现 dbc
摘自看过的一篇深度好文, 强推!原创 2022-10-09 16:23:24 · 365 阅读 · 0 评论 -
3.<tag-排序和最大数, 较小数问题>补充: 剑指 Offer 45. 把数组排成最小的数 + lt.179. 最大数 dbc
3.<tag-排序和最大数, 较小数问题>补充: 剑指 Offer 45. 把数组排成最小的数 + lt.179. 最大数原创 2022-08-16 00:00:18 · 201 阅读 · 0 评论 -
2.<tag-排序和归并排序巧妙解题>-剑指 Offer 51. 数组中的逆序对 + lt. 315. 计算右侧小于当前元素的个数 + 补充题-计算数组的小和 1
剑指 Offer 51. 数组中的逆序对[案例需求][思路分析]这道题充分利用了归并排序的性质视频题解还有以下解法等待补充:有序数组 (Sorted List)归并排序 (Merge Sort)树状数组 (Binary Indexed Tree)线段树 (Segment Tree)[代码实现]class Solution { int count = 0; public int reversePairs(int[] nums) { int l原创 2022-04-07 12:15:13 · 505 阅读 · 0 评论 -
1.<tag-排序和数组, 链表>-lt.215-数组中的第K个最大元素 + lt.148-排序链表 2
文章目录lt.215-数组中的第K个最大元素lt.148-排序链表lt.215-数组中的第K个最大元素[案例需求][思路分析]本题出现频率非常的高!!!数组中的第K最大, 最小, 或者说中位数, 都可以用各种排序方法先对数组排序, 然后返回要求的值即可;所以嘛, 熟练掌握快排(迭代的, 递归的), 堆排序, 归并排序(迭代的, 递归的)非常有必要!!!, 当然了链表的各种快排, 归并排序也是必要的, 就在下面一道题.具体的解析和详细代码可看笔者之前的一篇文章: 点我[效率比较]原创 2022-04-03 16:17:50 · 120 阅读 · 1 评论 -
tag排序-刷题预备知识-1.《快排, 堆排, 归并》最常见写法和优化,Java实现 2
文章目录一, 快排1.0 快排基本写法-挖坑法1.1 快排基本写法-左右双指针(left, right)1.2, 快排的时空复杂度分析A, 快排优化一, 随机基准值快排B, 快排优化三, 三数取中1.3, 快排为什么越趋近于有序就越慢1.4 非递归快排1.5 链表快排二, 堆排序三, 归并排序3.1 迭代法的归并排序(学有余力再来补充)3.2 归并排序单链表本文主要是对力扣中最常遇到的三大排序和各种考察角度进行了一个大致总结, 主要是因为笔者发现网上大多数帖子的有些排序都不是最优的写法, 在力扣中都需要原创 2022-03-24 10:17:45 · 767 阅读 · 0 评论