代码改变世界

实用算法实现-第8篇 后缀树和后缀数组 [1简介]

2011-10-15 11:50 by myjava2, 754 阅读, 0 推荐, 收藏, 编辑
摘要:8.1 后缀树一棵后缀树包含一个指定文本的所有后缀,对于在一个长度为N的文本中查找一个长度为M的子字符串,一个后缀树仅仅需要M次比较,而这个比较次数是查找该字符串所需要的最小比较次数。后缀树有以下特征:一条边可以表示文本的任何非空子串,每个非终端节点,除了根节点,必须至少有两个孩子边,兄弟边表示的子串必须开始于不同的字符。ababa所对应的后缀树如下所示:后缀树可以解决很多复杂的字符串编程问题,包括:1. 查询字符串S是否包含子串S1。主要思想是:如果S包含S1,那么S1必定是S的某个后缀的前缀;又因为S的后缀树包含了所有的后缀,所以只需对S的后缀树使用和Trie相同的查找方法查找S1即可。使 阅读全文

实用算法实现-第 7 篇 Trie树

2011-10-15 00:59 by myjava2, 156 阅读, 0 推荐, 收藏, 编辑
摘要:Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。它有3个基本性质:1. 根结点不包含字符,除根结点外每一个结点都只包含一个字符。2. 从根结点到某一结点,路径上经过的字符连接起来,为该结点对应的字符串。3. 每个结点的所有子结点包含的字符都不相同。7.1 Trie树7.1.1实例PKU JudgeOnline, 2513, ColoredSticks.7.1.2问题描述给定一些棍子,棍子的两端涂上两种颜色。问这些棍子能不能连成一条直线,使得连在一起的两根棍子的相邻一端颜色相同。7.1.3输入blueredredvioletcyan 阅读全文

D语言之路-第1篇 库函数之争

2011-10-14 02:42 by myjava2, 318 阅读, 0 推荐, 收藏, 编辑
摘要:D语言有着两个不同的库,分别为Phobos[i]和Tango[ii]。这对于像我这样的初学者来说面临着一个选择,你是愿意和跳探戈呢(tango with D,事实上Tango的标准教材之一是《learn to tango with D》[iii],中译版《学习D语言的tango》[iv]),还是作为一颗忠实的卫星(Phobos即火卫一)。对于Java这种具有统一的标准库和运行平台的语言来说,这不成问题,但是D语言这个新锐语言在其发展的当前阶段,出现两个运行时语言库相与争锋、各有千秋的现象。 我们先来看看上场的两位选手都有什么优势。 Phobos优势:1.Phobos官方认证的标准运行... 阅读全文

实用算法实现-第6篇 线段树

2011-10-13 21:13 by myjava2, 624 阅读, 0 推荐, 收藏, 编辑
摘要:6.1 线段树简介线段树的定义如下: 一棵二叉树,记为T (a,b),参数a,b表示该结点表示区间[a,b]。区间的长度b-a记为L。递归定义T[a,b]: 若L>1 :[a, (a+b) div 2]为 T的左儿子 [(a+b)div 2,b]为T的右儿子。 若L=1 :T为一个叶子结点。表示区间[1, 10]的线段树表示如下:树一般有两种形式:1、以点为结点。2、以线段为结点。区别如图:上面一个以线段为结点,下面一个以点为结点:对线段树存在:定理:线段树把区间上的任意一条线段都分成不超过2logL条线段。这个结论为线段树能在O(logL)的时间内完成一条线段... 阅读全文

mysql学习之路五(转)

2011-10-13 12:06 by myjava2, 157 阅读, 0 推荐, 收藏, 编辑
摘要:5 MYSQL数据库管理我们在第二章已经简单介绍了一些MYSQL数据库的基本操作,这一章我们将针对MYSQL数据库管理员详细介绍下MYSQL数据库的常用管理内容。1MYSQL界面管理工具MYSQL的管理工具很多,我自己从网上下载了一个:mysql-gui-tools-noinstall-5.0-r12-win32,是一个不用安装的管理软件,包含四个基本工具:MySQLAdministratorMySQLMigrationToolMySQLQueryBrowserMySQLSystemTrayMonitor这些工具的具体使用都很简单,操作比较灵活,这里就不对这些工具的功能做详细介绍了,如果... 阅读全文

mysql学习之路四(转)

2011-10-13 12:05 by myjava2, 150 阅读, 0 推荐, 收藏, 编辑
摘要:MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不 阅读全文

mysql学习之路三(转)

2011-10-13 12:04 by myjava2, 114 阅读, 0 推荐, 收藏, 编辑
摘要:创建MYSQL索引mysql> create procedure p_test()-> begin-> declare counter int;-> set counter = 1000;-> while counter >= 1 do-> insert into test(id,mc) values(counter,'test');-> set counter = counter - 1;-> end while;-> end;//Query OK, 0 rows affected (0.98 sec)mysql&g 阅读全文

mysql学习之路二(转)

2011-10-13 12:03 by myjava2, 125 阅读, 0 推荐, 收藏, 编辑
摘要:4 创建用户数据库mysql> CREATE DATABASE MYTEST;Query OK, 1 row affected (0.00 sec)如果想改变MYSQL数据文件的默认路径,我们可以关闭MYSQL实例,修改配置文件”my.cnf”或”my.ini”(WINDOWS系统)中的datadir对应的参数值,然后把MYSQL默认安装的datadir下的内容拷贝到新的数据文件路径下,启动MYSQL实例这样我们再次创建数据库的时候数据文件就放在新的路径下了。mysql> SHOW DATABASES;+--------------------+| Database |+----- 阅读全文

mysql学习之路一(转)

2011-10-13 12:02 by myjava2, 161 阅读, 0 推荐, 收藏, 编辑
摘要:原文章地址:http://www.itpub.net/thread-788049-1-1.html1 MYSQL安装先下载安装包:mysql-5.0.27-win32.zipmysql-noinstall-6.0.0-alpha-win32.zip下载了2个版本:一个5.0.27安装版;一个6.0.0非安装版。本人测试用的为5.0.27安装版,安装过程不再赘述。各个操作系统平台的安装可以看MYSQL联机文档。2 登录及一些基本操作本章的主要目的是让我们对MYSQL的基础框架有个大概的了解。1 连接与断开MYSQL服务器安装完毕登陆MYSQL(有过一些其他数据库基础的人都应该很容... 阅读全文

在DOS下写存储过程

2011-10-13 11:24 by myjava2, 159 阅读, 0 推荐, 收藏, 编辑
摘要:在网上找了点儿资料学习mysql,就照着上面的开始写 让我很纠结的事情发生了。我在写存储过程时,只要打上“;”系统就会提示我错误百思不得其解啊 最后反复的看 查 终于找到了方法:原来是在写存储过程时要在前面加上一句:mysql> DELIMITER //mysql> CREATE PROCEDURE P_WITH_PARA(IN PARA_IN INT,OUT PARA_OUT INT) 阅读全文
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 52 下一页