练习问题来源 https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/02.01.html 要求 输入n个整数,输出其中最小的k个 解法 最直观的思路,先对 n 个数排序,再一次输出 k 个数,用快速排序,时间复杂度为 O(n*logn) 另一种方法,输出的前 k 个最小的数没要求有顺序.可以先取前 k 个数,遍历找到最大的数记 kmax ,再重剩下的 n - k 个数中依次判断是否有 < kmax 的数,若…
1.O(nlogk)海量数据 import java.util.TreeSet; public class T030 { public static void main(String[] args){ int[] data = {4,5,1,6,2,7,3,8}; TreeSet<Integer> leastNumbers = new TreeSet<Integer>(); getLeastNumbers(data,leastNumbers,4); } public static…