Golang-partition操作找topK
·
用 partition 操作找 top K(比如数组里最大的K个数或最小的K个数)
Partition(分区操作)
Partition 是快速排序(QuickSort)里用到的一个技巧:
选一个“基准值”(pivot),
把数组里的元素分成两部分:
一边比 pivot 小(或大,视需求而定)
一边比 pivot 大(或小)
这个过程叫 partition,完成后 pivot 会排到它应该在的“最终位置”。
用 Partition 找 Top K 的思路
- partition把数组分成了两部分,pivot在正确位置
- 通过pivot位置和K比较,决定往左还是往右找
- 不用排序整个数组,平均时间复杂度是O(n),比先排序再取前K快很多
更多推荐
所有评论(0)