This commit is contained in:
krahets 2023-06-12 23:14:01 +08:00
parent ea1c7b7548
commit 0c268c67f2

View file

@ -16,9 +16,9 @@ comments: true
该方法只适用于 $k \ll n$ 的情况,因为当 $k$ 与 $n$ 比较接近时,其时间复杂度趋向于 $O(n^2)$ ,非常耗时。 该方法只适用于 $k \ll n$ 的情况,因为当 $k$ 与 $n$ 比较接近时,其时间复杂度趋向于 $O(n^2)$ ,非常耗时。
![遍历寻找最大的 $k$ 个元素](top_k.assets/top_k_traversal.png) ![遍历寻找最大的 k 个元素](top_k.assets/top_k_traversal.png)
<p align="center"> Fig. 遍历寻找最大的 $k$ 个元素 </p> <p align="center"> Fig. 遍历寻找最大的 k 个元素 </p>
!!! tip !!! tip
@ -30,9 +30,9 @@ comments: true
显然,该方法“超额”完成任务了,因为我们只需要找出最大的 $k$ 个元素即可,而不需要排序其他元素。 显然,该方法“超额”完成任务了,因为我们只需要找出最大的 $k$ 个元素即可,而不需要排序其他元素。
![排序寻找最大的 $k$ 个元素](top_k.assets/top_k_sorting.png) ![排序寻找最大的 k 个元素](top_k.assets/top_k_sorting.png)
<p align="center"> Fig. 排序寻找最大的 $k$ 个元素 </p> <p align="center"> Fig. 排序寻找最大的 k 个元素 </p>
## 8.3.3. &nbsp; 方法三:堆 ## 8.3.3. &nbsp; 方法三:堆
@ -44,7 +44,7 @@ comments: true
4. 遍历完成后,堆中保存的就是最大的 $k$ 个元素; 4. 遍历完成后,堆中保存的就是最大的 $k$ 个元素;
=== "<1>" === "<1>"
![基于堆寻找最大的 $k$ 个元素](top_k.assets/top_k_heap_step1.png) ![基于堆寻找最大的 k 个元素](top_k.assets/top_k_heap_step1.png)
=== "<2>" === "<2>"
![top_k_heap_step2](top_k.assets/top_k_heap_step2.png) ![top_k_heap_step2](top_k.assets/top_k_heap_step2.png)