自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

转载 Trie树和后缀树讲解及应用

后缀数组原理及应用详解     在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题: 1.在文本T里查询T是否包含子串P(复杂度同流行的KMP相当)。2.文本T里找出最长重复子串。比如

2015-09-26 22:03:53 1940

原创 2路插入排序实现

1,2路插入排序的思想:在折半插入排序的基础上改进,目的是减少排序过程中激动记录的次数,既然是在折半的基础上,那么应该也能减少查找操作。具体做法:另设一个和原数组L同类型的数组D,将L[1]赋值给D[0],并将D[0]看成是在排好序的序列中处于中间的位置,即当L中来一个数和D[0]比较,大往D[0]后放,小往前放,这时候把D看成是个循环向量。因为在以D[0]分隔的两边都是有序序列,我们

2015-09-24 10:23:25 972

原创 堆以及堆排序实现

1.今天实现了一下堆排序,这里的堆是指二叉堆,至于二项堆和斐波那契堆以后再说。先看二叉堆的定义:二叉堆是完全二叉树或近似完全二叉树。满足特性是:父亲节点的值大于等于(小于等于)左右孩子的值,并且左右子树也是二叉堆。对应的二叉堆是大顶堆(小顶堆)。二叉堆是完全二叉树,可以用线性表来存储。2.实现堆排序时的想法:(1)一个关键点是堆的调整,调整的时候一定要注意先找到左右孩子中较...

2015-09-22 11:41:23 608

原创 static的作用

1.static 的一个最重要的作用是:隐藏。例如:我在a.h中的内容为:#pragma onceclass a{public:a(void);~a(void);//void msg();};void msg();在a.cpp中的内容为:#include "StdAfx.h"#include "a.h"#includeusing name

2015-09-21 20:30:31 343

原创 c++语法小知识2

1.operator的初步认识。operator是c++中的关键字,是一个重载操作符,为什么要使用重载操作符呢?对于系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class,对于用户自己定义的class,如果想支持基本操作,比如比较大小,判断是否相等,等等,则需要用户自己来定义关于这个操作符的具体实现。比如,判断两个人是否一样大,我们默认的规则是按照其年龄来比较,所以,在

2015-09-21 19:00:41 339

原创 calloc和malloc/free以及new/delete相关知识

calloc/free和malloc/free是c/c++语言中的标准库函数,new/delete是c++运算符,都可以用来申请动态内存和释放内存。1. malloc/freemalloc 的函数原型为:void * malloc(int size);说明:malloc向系统申请分配指定size个字节的空间,返回类型是void *类型,意思是指返回的是未确定类型的指针,c/c++规定v

2015-09-19 21:07:49 1212

原创 在XML数据库中高效的关键字搜索求SLCAs

1.首先了解什么是XML?XML是Extensible Markup Language的缩写,是一种类HTML的可扩展标记语言,它的设计宗旨是传输数据,而不是显示数据,XML标签没有被预定义,可以自定义标签。2.XML与HTML的区别?XML 被设计为传输和存储数据,其焦点是数据的内容。HTML 被设计用来显示数据,其焦点是数据的外观。HTML 旨在显示信息,而 XML 旨在传

2015-09-18 21:52:18 1435

原创 c++语法小知识1

1,#define 不是一个执行语句,后边不用加分号2,struct                                       { char data; int cur;}node[10];与typedef struct{char data;int cur;}node[10];的区别。前面那个是定义了一个名为node规模为10的结果体数组,后面那个是用type

2015-09-06 14:46:32 492

原创 静态链表实现

1,有些高级语言中没有“指针”数据类型,只能用数组来模拟线性链表的结构,数组元素中的指针“域”存放的不是元素在内存中的真实地址,而是在数组中的位置。这样的链表称为静态链表。2,静态链表是用数组实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配大小。动态链表是用申请内存函数(C是malloc,C++是new)动态申请内存的,所以在链表的长度上没有限制。动态链表因为是动态

2015-09-06 14:18:16 1206

原创 快速排序实现和改善

1,快速排序的一个关键是找枢轴,我的处理方式是将起始位置和中间位置以及最后位置的值进行比较取中间值,如果枢轴不在起始位置可以交换后统一只考虑枢轴在起始位置时的处理方式,因为枢轴不同,处理方式有点小差异。2,另一改善点是如果有和枢轴相等的数据,在一次快排后应该和枢轴放一起,这样下一次快排的规模会变小,这在数据集中有很多相同数据时很有用。处理方式是在遍历过程中遇到比枢轴大和小的数据还是交换,遇到相...

2015-09-01 09:10:23 827

Kruskal实现最小生成树代码

Kruskal实现最小生成树,其中用并查集判别一条边是否是在同一连通分量中!

2015-10-29

xml关键字查询求SLCA代码

是对论文Efficient Keyword Search for Smallest LCAs in XML Databases的部分实现!

2015-10-29

空空如也

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

TA关注的人

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