This commit is contained in:
krahets
2023-08-19 22:07:27 +08:00
parent 71c7786f51
commit 2e27ad1680
99 changed files with 283 additions and 283 deletions
+4 -4
View File
@@ -2,7 +2,7 @@
comments: true
---
# 8.3.   Top-K 问题
# 8.3   Top-K 问题
!!! question
@@ -10,7 +10,7 @@ comments: true
对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。
## 8.3.1.   方法一:遍历选择
## 8.3.1   方法一:遍历选择
我们可以进行 $k$ 轮遍历,分别在每轮中提取第 $1$ , $2$ , $\cdots$ , $k$ 大的元素,时间复杂度为 $O(nk)$ 。
@@ -24,7 +24,7 @@ comments: true
当 $k = n$ 时,我们可以得到从大到小的序列,等价于「选择排序」算法。
## 8.3.2.   方法二:排序
## 8.3.2   方法二:排序
我们可以对数组 `nums` 进行排序,并返回最右边的 $k$ 个元素,时间复杂度为 $O(n \log n)$ 。
@@ -34,7 +34,7 @@ comments: true
<p align="center"> 图:排序寻找最大的 k 个元素 </p>
## 8.3.3. &nbsp; 方法三:堆
## 8.3.3 &nbsp; 方法三:堆
我们可以基于堆更加高效地解决 Top-K 问题,流程如下: