原文:java---最小的K个数

时间限制: 秒 空间限制: K 题目描述 输入n个整数,找出其中最小的K个数。例如输入 , , , , , , , 这 个数字,则最小的 个数字是 , , , ,。 最简单的思路当然是直接排序,最前面的K个数就是题目所求,但是这显然不是优秀的解法。 可以选择使用快排的Partition函数,简单划分,但是并不排序,较为快速的解决问题。 还可以考虑使用另一种数据结构,最大堆,用最大堆保存这k个数, ...

2017-10-25 18:08 0 1685 推荐指数:

查看详情

最小k个数

输入n个整数,找出其中最小K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 第一个思路:利用大根堆。也是解决top k海量数据的关键 延伸部分(重要) 大堆还是小堆的选择很重要,不是寻找最小k个元素就要选择小堆,而且恰恰相反。 寻找最小k ...

Tue Mar 17 01:16:00 CST 2020 0 693
Java】 剑指offer(40) 最小k个数

本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目    输入n个整数,找出其中最小k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 思路   思路一:同剑指offer(39) 数组 ...

Mon Nov 12 07:10:00 CST 2018 0 1105
最小k个数-Python版

题目 输入n个整数,找出其中最小K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。(牛客网上要求结果有序) 解法1,使用快排思想 解法2,创建一个k大小的容器(略),适合海量数据 ...

Fri Apr 24 01:33:00 CST 2020 0 749
寻找最小k个数(大顶堆方法)

题目描述:查找最小k个元素,输入n个整数,输出其中最小k个。 一般的排序方法,如快排,时间复杂度为O(n*logn+k); 大顶堆方法,时间复杂度为O(k+(n-k)*logk); 如果建立k个元素的最小堆的话,那么其空间复杂度势为O(N),而建立k个元素的最大堆的空间复杂度为O ...

Sun Aug 28 18:39:00 CST 2016 0 2479
【剑指Offer】29、最小K个数

  题目描述:   输入n个整数,找出其中最小K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。   解题思路:   本题最直观的解法就是将输入的n个整数排序,排序之后位于最前面的k个数就是最小k个数,这取决于排序的时间复杂度,最快为O ...

Sun May 05 19:21:00 CST 2019 0 471
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM