`
cjf068
  • 浏览: 34924 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

红黑树

红黑树 规则 * 1.每个节点不是红色就是黑色 * 2.根总是黑色 * 3.如果节点是红色,则它的两个子节点必须是黑色(反之则不一定) * 4.从根到叶节点或空子节点的每条路径,必须包括相同数目的黑节点(空节点为黑色) 节点类: pa ...

行文件分组统计

有些情况下,对于一个结构化的以行为记录的文本文件,需要按列分组统计,如果数据量小,可以直接导入数据库中,但是当文件很大时,导入数据库不太现实,本程序即实现非数据库条件下,按任意列分组统计行数功能;文件只读一次,按任意分组方式查询。 基本思路: 1.根据指定的列名,构建一颗多叉树,树的高度即为可以分组的条件列数 2.存储树中,各节点名按字典顺序降序排列 3.查询时,根据指定的列名,找到对应的树节点,将其中value值累加返回 以下为第一个初级版本,欢迎指点!! 树节点: package org.jf.sta; import java.util.ArrayList; import ja ...
查找最小的k个元素 题目:输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 我的思路:利用二叉堆,构建一个容量为k的定长最小二叉堆,遍历数组,逐个将元素add进堆,完毕返回堆中所有元素即为最小的k个元素 package org.jf.alg; /** * 定长小根堆 * 数组存储,数组第一个元素留空 * * 第k个元素的左儿子为 a[2k],右儿子为a[2k+1] * * 第k个元素的父节点为a[k/2] * * k从1记起 * * @author chenjf ...
package org.jf.alg; /** * * 算法描述: 一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。 设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。 可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。 链表存储, 当然数组存储也可以 * @author junfeng.chen * */ public class Pstack<T extends Comparable> { private Node head; ...

蛇形数组

package org.jf.alg; /** * 蛇形数组 * * n=3 * 1 2 3 * 8 9 4 * 7 6 5 * 最基本的直观爬行方式实现 * @author junfeng.chen * */ public class SnakeArray { private int array[][] = null; private int k = 0; public SnakeArray(int n) { array = new int[n][n]; k = n*n; init(); } ...

简单LRU缓存实现

链表保存键值,由于没有权值策略,简单的将当前访问过的节点放到链表头部,则存在如下问题: 在周期性访问中,某个周期中存在一部分数据仅仅只访问了一次,则最终导致缓存中的数据都是无效的数据,而将频繁访问的数据排除了。在实际应用中,这种简单策略不适用。 TestCode public class LRUCacheTest { /** * @param args */ public static void main(String[] args) { LRUCache cache = new LRUCache(10); for(int i=0;i< ...

大根堆

大根堆,可用于优先级队列 package org.jf.alg; /** * 大根堆 * * @author junfeng.chen * * @param <T> */ public class BigHeadBinaryHeap <T extends Comparable> { private int step = 64; private Object [] array; private int last_indx = 0; public BigHeadBinaryHeap(int initial_size ...

固定容量二叉堆

固定容量的二叉堆实现,可用于快速求top k 问题。如要求一个数组中top k的元素,则建立一个容量为k的大根堆,一次遍历数组add进该堆,遍历完毕,堆中的元素即为top k的所有元素。 固定容量大根堆代码 package org.jf.alg; public class BigHeadFixedBinHeap <T extends Comparable> { private Object array[]; private int current_size = 0; public BigHeadFixedBinHeap(int size) { ...

大数乘法

论坛看到的一个面试题,实现任意大整数字符串相乘,返回结果字符串 package org.jf.alg; /** * * 大数乘法 * @author junfeng.chen * */ public class BigIntegerMultipl { /** * * @param s1 整型乘数字符串 * @param s2 整型乘数字符串 * @return 整型字符串结果 * * s1=a[1]a[2] ...
Global site tag (gtag.js) - Google Analytics