1. 找到第k小的数字
1.1 描述
- 在一个无序数组中找到第k小的数字
1.2 方法1
- 强行排序之后,即可很容易地找到。
1.3 方法2
- 参考快排,选定某一个数为标准,如果执行一次快排的操作之后,左边有(k-1)个比它小,此数恰好处在位置k上,那么就是它。
1.4 方法3
- (数组中数据很多)
- 取前k个数,建立最大堆,然后依次取后面的元素与堆顶比较,更新、整理堆。
2. 文件中频率最高的10个单词
- 当然首先要统计每个单词的频率,可以用 HashMap 存储.
- 参考问题1,可以强行排序、参考快排思想、借助最小堆。