用 partition 操作找 top K(比如数组里最大的K个数或最小的K个数)

Partition(分区操作)

Partition 是快速排序(QuickSort)里用到的一个技巧:
选一个“基准值”(pivot),
把数组里的元素分成两部分:
一边比 pivot 小(或大,视需求而定)
一边比 pivot 大(或小)
这个过程叫 partition,完成后 pivot 会排到它应该在的“最终位置”。

用 Partition 找 Top K 的思路

  1. partition把数组分成了两部分,pivot在正确位置
  2. 通过pivot位置和K比较,决定往左还是往右找
  3. 不用排序整个数组,平均时间复杂度是O(n),比先排序再取前K快很多
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐