算法
文章平均质量分 78
爱胡椒的小白兔呢
哼
展开
-
子字符串查找
一、KMP算法1、KMP算法实现(p500):public class KMP { private String pat; private int[][] dfa;//确定有限状态自动机 public void dfa(String pat)//构造DFA { this.pat = pat; int M = pat.length(); int R = 256; d原创 2016-11-29 18:58:25 · 308 阅读 · 0 评论 -
单词查找树
一、基于单词查找树的符号表:public class TrieST{ private Node root; private static int R = 256; private static class Node { private Object val; private Node[] next = new Node[R]; } public Value get(Str原创 2017-04-05 21:23:01 · 317 阅读 · 0 评论 -
背景
一、B-树:public class BTreeSET >{ private Page root = new Page(true); public BTreeSET(Key sentinel) { add(sentinel); } public boolean contains(Key key) { return contains(root, key); } priv原创 2017-04-10 11:11:07 · 267 阅读 · 1 评论 -
数据压缩
一、Huffman压缩:public class Huffman { private static int R = 256; private static class Node implements Comparable { private Node left, right; private int freq; private char ch; Node(char ch原创 2017-04-08 10:55:41 · 255 阅读 · 0 评论 -
字符串排序
一、低位优先字符串排序算法(LSD):public class LSD{ public static void sort(String[] a, int W) { int R = 256; int N = a.length; int[] count = new int[R+1]; String[] aux = new String[N]; for (int d = W原创 2017-03-30 11:41:10 · 346 阅读 · 0 评论 -
图
一、无向图Graph数据类型:import java.util.Scanner;public class Graph{ private final int V; private int E; private Bag[] adj; public Graph(int v) { this.V = v; this.E = 0; adj = (Bag[])new Bag[原创 2017-03-20 18:28:50 · 281 阅读 · 0 评论 -
正则表达式
一、NFA的构造与匹配:public class NFA { private int M; private Digraph G; private char[] re; public NFA(String regexp) { Stack ops = new Stack(); M = regexp.length(); G = new Digraph(M+1); re原创 2017-04-07 10:47:49 · 232 阅读 · 0 评论 -
符号表
一、无序链表的顺序查找:import java.util.ArrayList;import java.util.Iterator;public class SequentialSearchST{ private Node first; private int N; private class Node { Key key; Value val; Node next原创 2017-03-07 11:16:01 · 282 阅读 · 0 评论 -
初级排序算法实现
一、选择排序:public class Selection { public static void sort(Comparable[] a) { int N = a.length; for (int i = 0; i < N; i++) { int min = i; for (int j = i + 1; j < N; j++) if (less(a[j原创 2017-02-26 11:15:51 · 248 阅读 · 0 评论 -
union-find算法
一、quick-find:import java.util.Scanner;public class UF //quick-find{ private int[] id; private int count; public UF(int N) { count = N; id = new int[N]; for (int i = 0; i < N; i++)原创 2017-02-25 19:17:41 · 277 阅读 · 0 评论 -
归并排序、快速排序、堆排序
一、自顶向下的归并排序:public class Merge{ private static Comparable[] aux; public static void merge(Comparable[] a, int lo, int mid, int hi) { //aux = new Comparable[a.length]; for (int k = lo; k <= h原创 2017-02-27 16:22:25 · 187 阅读 · 0 评论 -
背包、队列、栈
一、定容栈public class FixedCapacityStackOfStrings { private String[] a; private int N; public FixedCapacityStackOfStrings(int cap) { a = new String[cap]; } public void push(String item) { a原创 2017-02-21 16:04:14 · 234 阅读 · 0 评论 -
优先队列
一、基于堆的优先队列:public class MaxPQ>{ private int N = 0; private Key[] pq; public MaxPQ(int maxN) { pq = (Key[])new Comparable[maxN+1]; } public boolean isEmpty() { return N == 0; } publ原创 2017-02-28 11:33:28 · 210 阅读 · 0 评论 -
B-树、后缀数组、网络流算法、问题规约、不可解性
一、B-树:1、内部结点:含有与页相关联的键的副本外部结点:含有指向实际数据的引用2、一棵M阶B-树(M为正偶数)或者仅是一个外部K-结点或者由若干内部K-结点组成。它的结构性质如下:从根节点到每个外部结点的路径长度均相同;对于根结点,k在2到M-1之间,对于其他结点k在M/2到M-1之间。3、含有N个元素的M阶B-树中的一次查找或插入操作需要logmM~logm/2N次探查---原创 2016-12-15 11:54:34 · 579 阅读 · 0 评论 -
单词查找树
1、将基于含有R个字符的字母表的单词查找树称为R向单词查找树。//基于单词查找树的符号表public class TrieST{ private static int R = 256; private Node root; private static class Node { private Object val; private Node[] next = new Node原创 2016-11-26 11:11:29 · 441 阅读 · 0 评论 -
字符串排序
1、来自《算法第四版》算法5.1 --------------P459/** *@author ShaoChenrong * *//**低位优先字符串排序LSD*/public class LSD{ public static void sort(String[] a, int w) { int R = 256; int N = a.length; String原创 2016-11-18 18:59:17 · 293 阅读 · 0 评论 -
数据压缩
一、霍夫曼压缩:1、霍夫曼编码是一个两轮算法。2、对于任意前缀码,编码后的比特字符串的长度等于相应单词查找树的加权外部路径长度。3、给定一个含有r个符号的集合和它们的频率,霍夫曼算法所构造的前缀码是最优的。原创 2016-12-12 11:25:54 · 319 阅读 · 0 评论 -
子字符串查找
一、暴力子字符串查找算法:public class Baoli { public static int search(String pattern, String txt) { int M = pattern.length(); int N = txt.length(); for (int i = 0; i < N-M; i++) { int j; for (原创 2017-04-06 11:37:23 · 238 阅读 · 0 评论