TopK,得到答案并不难,但不断优化的过程,挺艰难。 题目描述: 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 1.全局排序,时间复杂度取决于排序算法,一般是 O(n*lgn)。 相信大多数朋友看到这题的思路就是排序,返回第k大的值,甚至还有小机灵鬼直接调用内置方法 public int findKth(int[] a, int n, int K) { Arrays.sort(a); return a[n-K]; } 2.局部排序,只排序TopK个数,O...