自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 线段树

定义线段树的非叶子节点都是区间,而叶子节点是原始数据本身。非叶子节点中经常存放着叶子节点的聚合数据,例如最大值,最小值,数量值等等。由于线段树的区间只跟数据的数值范围有关,不跟数据有关。所以线段树的高度最大为log(数值范围)。例如存放int值的线段树,高度最大为log(INT_MAX)作用包含查找树的所有功能1.快速查找元素是否存在,log(n)2.快速查找树中的最大

2016-03-02 10:05:45 218

原创 c4编译器源码剖析

c4_source1. 概述c4是500行代码实现一个c语言编译器简单暴力,适合了解基础的编译器原理2. 主流程1.建立系统符号表2.读取源代码3.一次遍历源代码,同时进行词法分析,语法分析和中间代码生成。4.执行中间代码3. 中间代码3.1. 基础中间代码操作意义LEA 2将栈往上的2个位置变量加载到寄存器加载本地变量IM

2016-03-02 10:05:45 1860

原创 查找树

定义排序二叉树,节点是数据本身,左子树比父节点要小,右字树比父节点要大用法1.快速查找节点是否存在在树中。log(n)2.快速树种的最大值或者最小值。log(n)优化由于原始排序二叉树受输入数据影响,可能导致极度的不平衡。所以有了平衡二叉树的说法,平衡二叉树的高度始终保持在log(n)的时间复杂度上。平衡二叉树的变种1.AVL树2.红黑树3.伸展树4

2016-03-02 10:05:41 208

原创 前缀树

定义前缀树,是将单词的每个字符作为树的节点。前缀树衍生自基数树,数字的基数是位,字符串的基数就是字符。所以前缀树相当于基为字符的基数树。另外,前缀树又成为Tire树。作用1.快速查找单词A是否在字符串B中。O(n*m)2.快速查找单词A,B,C是否在字符串C中。O(n*m)3.快速查找指定前缀下含有哪些单词。O(m)优化1.AC自动机。朴素的Trie树在进行模式匹配时,

2016-03-02 10:05:40 392

原创 后缀树

定义后缀树建立的是单个单词的所有后缀的Trie树。作用1.快速判断单词A是否在句子B中,以及匹配的最长长度。O(n m)2.快速判断单词A在句子B中的重复次数。O(m)3.快速判断单词A与单词B的最长公共子串。O(m)4.快速找出句子A中的最长回文字串。O(m)优化1.后缀数组。后缀树的数组形式。2.后缀状态机。后缀树的状态机形式。

2016-03-02 10:05:40 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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