Java 实现 堆排序 快速排序 以及 TopK问题(二)

接上文 已知快速排序可以将一个数组分成两部分,一部分大于某个值,一部分小于某个值,那么由这点可以推出取TopK值的方法如下: 假设快排每一趟的分割值的点为p,数组长度为n,那么需要比较n-p与k,如果恰好K==n-p,那么只需要取p点之后的所有值就行了。 如果k 如果k&g...

2016-09-13 13:42:00

阅读数 1174

评论数 0

Java 实现 堆排序 快速排序 以及 TopK问题(一)

问题是 从大小为N的无序数组里面取K个最大值 最早想到的办法是冒泡K轮,但是后来思考到,堆排序和快速排序,可以更好的实现取K个最大值。 public class Main { public static void main(String[] args) { int[] ar...

2016-09-13 11:26:51

阅读数 325

评论数 0

根据入栈顺序输出所有可能的出栈顺序 (Java)

某次面试被问到的一个题,当场答得不是很好,所以回来记录一下比如入栈顺序是1,2,3,那么出栈顺序分别可以是1,2,3;1,3,2;…. import java.util.Stack; public class ss { static char[] in={'a','b','c'}; p...

2016-09-11 18:13:34

阅读数 3947

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭