
TOPK
Giotto_Ven
交大控制科学与工程研究生
展开
-
Python3-[39]面试题40.最小的k个数(TOPK问题)A
面试题40.最小的k个数题目解题思路解法1:heapcode1:max-heap解法2:快速排序code2:快排思路题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。P.S. 题目来源于leetcode解题思路这是TopK的问题,参看TOPK讲解。具体来说,为求解最小的k个数,可以使用2中方法:大顶堆和快速排序。下面分别利用大顶堆和快速排序得到TopK.解法1:heap由于在Python3中提供的hea原创 2020-08-27 20:49:55 · 360 阅读 · 0 评论 -
TOPK问题(二叉堆/快速排序)A
TOPK问题问题描述解题思路解法1:最大二叉堆(重写heap)code1:max-heap解法2:最小堆-heapqcode2:min-heap/heapq解法3:快排quicksortcode3:quicksort问题描述TOPK问题:输入整数数组arr,找出其中最小的/最大的k个数这里以min-topk为例进行讲解解题思路解法1:最大二叉堆(重写heap)首先重写最大二叉堆(BinHeap),主要在_percUp和_percDown函数。class BinHeap:#最大二叉堆 d原创 2020-08-27 20:06:54 · 573 阅读 · 0 评论