1. 首页
  2. 数据库
  3. 其它
  4. 求有N个元素的数组中前k个最大的数?(N>=k)(python实现)

求有N个元素的数组中前k个最大的数?(N>=k)(python实现)

上传者: 2021-04-19 10:02:51上传 PDF文件 52.73KB 热度 41次
求有N个元素的数组中前k个最大的数?(N>=k) 方法一:排序法 可以先将数组排序,然后再截取前k个最大的数,利用归并排序或者快速排序等排序方式,该方法平均时间复杂度为O(N*logN) 方法二:部分排序法 由于只需要找出前k大的数,因此没必要对数组中所有的元素排序,可以采用部分排序的方式。具体思路为:第一次先遍历数组找到最大的数,第二次遍历从剩下的数组中找到最大的数(在整个数组中第二大的数)...共需遍历k次,这种方法的时间复杂度为O(N*k) 方法三:综合法 该方法思路是: (1)维护一个大小为k的小顶堆(降序排列,堆顶元素最小),用来存储前k个最大的数,堆顶保存了堆中最小的数; (2)每次遍
用户评论