java学习笔记
追梦_赤子
在永无止境的学技术的道路上不断攀升
展开
-
堆应用实例
一个数据流中,怎么样做到随时可以取得中位数 题目描述:有一个源源不断地吐出整数的数据流,假设你有足够的空间来保存吐出的数。请设计一个名叫MedianHolder的结构,MedianHolder可以随时取得之前吐出所有树的中位数。 要求: 1.如果MedianHolder已经保存了吐出的N个数,那么任意时刻将一个新的数加入到MedianHolder的过程中,时间复杂度O(logN)。 2.取得已经吐出的N个数整体的中位数的过程,时间复杂度O(1). 减堆操作: * //1.将堆顶位置上的数弹到原创 2020-05-10 21:29:13 · 182 阅读 · 0 评论 -
快速搞定经典“快排”与“随机快排”
快排算法 快排其实是在荷兰国旗问题的基础上发展出来的,不知道荷兰国旗问题的请看我上一篇博文,它分为3步:分割、交换、递归 以下就是关于快排的详细代码 package Sort_learning; public class QuickSort { public static void quickSort(int[] arr, int L, int R) { //只有当L<R时,才排序,否则直接退出。 if(L < R) { swap(arr, L + (int)(Math.ran原创 2020-05-10 10:25:42 · 167 阅读 · 0 评论