当前位置:首页 » 操作系统 » 算法设计下载

算法设计下载

发布时间: 2022-06-12 06:52:14

算法设计

第5章:常用算法设计(软件设计篇)免费下载

链接:https://pan..com/s/1EsbJAHii_AXsOL6JuSnRHw

提取码:vwj2

《算法设计》是2007年清华大学出版社出版发行的图书,作者是Jon Kleinberg / Éva Tardos。

② 算法设计-帮帮忙

这个估计要用文件输入
否则太累了
--我们必须尽量优化程序才能达到题目的要求。显然n实在是太大了,所以我们不但不可能忍受O(n2)的复杂度,甚至连n前面的系数过大都会造成超时。为了尽量减小时间复杂度,我们只能依靠自动机的理论。
自动机理论
一个DFA(确定性有限自动机)是一个五元组<∑, U, s, T, φ>,其中∑是字符集U 是一个有限的状态集合, s 是 U 的一个元素表示初始状态, T 是 U的一个子集,表示终止状态and φ : U × ∑ → U 是转移函数。
开始时自动机在初始状态s,每步它读入一个字符c,然后根据state=φ(state,c)进行状态的转移。如果当字符串结束时它达到了终止状态,那么就说它接受了字符串。
NFA(非确定性自动机)与DFA的主要区别就是,NFA从一个状态按照一个字符转移到的状态可能有多个。因此NFA需要使用一个状态集合来表示当前可能处在的状态。
把自动机用图来表示的话,一般用结点表示状态,而结点之间有标有某个字符的有向边,表示可以从边的起点通过这个字符转移到边的终点。
此外NFA还可以包含标有ε的边,这种边表示不需要任何字符就可以直接进行状态的转移。
容易想到,如果我们建立了一个只接受符合正则表达式的自动机,就可以通过它来较快的判断哪些位置是可匹配的。
具体应用
比较常见的字符串匹配自动机大多都是DFA。但是由于有+,*,把正则表达式直接转变成DFA是非常困难的。因此我们只能先把它转化成NFA。
先看一下一般的转换规则:
如果正则表达式是一个字符,那么对应的NFA是:
p0-a->p1
如果正则表达式是A+B的形式,那么只要把它们的起始状态和终止状态合并就可以:
p0-a->p1
p0-b->p1
如果正则表达式是AB的形式,那么只要把A和B对应的自动机首尾相接:
p0-a->p1-b->p2
如果正则表达式是A*的形式,那么就需要按下面的图来进行处理:
p0-a->p0
p0->p1
通过上面的步骤可以得出:NFA的状态数不会超过正则表达式长度。

NFA中的状态转移
在NFA中进行状态转移比DFA要困难一些。我们可以定义两个函数,一个叫做epsilon-closure,用来计算一组NFA状态通过epsilon边能够到达的NFA状态集合。另外一个move用来在NFA上进行状态的转移。
设当前的状态集合是now,那么状态转移的过程就是:
new = {}
for every state s in now do
new = new ∪ {t | (s,t) = c}
new = epsilon_closure(new)
其中的(s,t)=c表示从s状态经过一个字符c可以转化到t状态。因为这个语句需要的集合总数也不会太多,所以可以通过预先计算出它们来加快速度。预处理后这个过程的复杂度是O(m2),而系数是比较小的。
但是由于在NFA中,我们必须把状态的集合作为一个真正的状态,每次状态转移都是对这个集合的处理。这样转移一次的复杂度是O(m2),这是不可忍受的(最大的数据需要大约2分钟才能出解)。
既然NFA速度过慢,我们自然想要把它转化为DFA。因为DFA中的状态转移是O(1)的。可是并没有一个多项式复杂度的方法可以把NFA转换成DFA。一般介绍的NFA转换到DFA的方法都是通过类似BFS的方法来把NFA中所有可能出现的状态集合对应成DFA的一个状态。
这种转换在本题中显然是不可行的,因为NFA的结点数最多是500,而转化成的DFA则可能有多达2500个状态,即使实际有许多状态不能达到,也是无论如何不可以忍受的。
看来把NFA转换成DFA是行不通的。但是我们还是从NFA转DFA的过程中受到了一些启发:NFA之所以速度慢,是因为我们在进行状态转移的时候可能进行许多重复操作:比如从{1,2}沿一个字符1转移后是{2,3},以后我们还可能遇到相同的情况,而这时我们还会用O(m2)的时间去进行状态转移。这是一种很严重的浪费。因此我们每进行一次状态转移,就把这个状态转移的情况放到hash表中,以后使用的时候就可以查找了。这相当于只把我们需要的一部分子集转移成DFA,虽然一般情况下并不能降低时间复杂度,但是在实际应用中确实很有效。(特别是对于没有*和括号的自动机,这样做可以保证线形的时间复杂度)
算法回顾和细节
我们重新来看一下算法的框架:
根据正则表达式建立NFA
now = start
while not eof do begin
read(c);
if 曾经进行过now,c的转移 then 利用以前的结果
else 进行状态转移并记录结果
if 终止状态 in now then 输出当前位置
end
建立NFA有各种方法,由于NFA并不会很大,所以我们可以使用递归的方法来实现。为了尽量减小系数,我们使用位压缩的方式来实现集合,并采用较为简化的hash函数(比如把一个集合位压缩后的一系列整数加起来取对220的余数),并在输入和输出的时候通过缓冲区来加快速度。这样就基本可以达到题目的时间要求。
但是注意到字符串可能有10M,而产生的NFA的状态集合最多也可能有10M个,而每个集合都需要100到200字节的存储空间,大大超出了允许的空间范围。因此我们需要对hash表的规模加以严格限制。如果规模过大就不得不放弃存储状态的想法,牺牲一定的时间来换取空间。

③ 《算法设计与分析习题解答与学习指导第2版》pdf下载在线阅读全文,求百度网盘云资源

《算法设计与分析习题解答与学习指导第2版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/179vMdBZkff4hFnlBxtr5BQ

?pwd=u8lo 提取码:u8lo
简介:北京大学教学团队力作,凝多年教学积淀和成果,MOOC算法课程配套用书。普通高等教育“十一五”*规划教材,高等学校计算机教材建设立项项目。算法设计与分析习题解答与学习指导第2版由屈婉玲着

④ 求《算法设计与分析习题解答与学习指导第2版》全文免费下载百度网盘资源,谢谢~

《算法设计与分析习题解答与学习指导第2版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/179vMdBZkff4hFnlBxtr5BQ

?pwd=u8lo 提取码:u8lo
简介:北京大学教学团队力作,凝多年教学积淀和成果,MOOC算法课程配套用书。普通高等教育“十一五”*规划教材,高等学校计算机教材建设立项项目。算法设计与分析习题解答与学习指导第2版由屈婉玲着

⑤ 《计算机算法设计与分析第5版习题及答案》pdf下载在线阅读全文,求百度网盘云资源

《计算机算法设计与分析第5版习题及答案》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1oxH2d3SdEUN0rx6LJRNBoA?pwd=8i4l 提取码:8i4l
简介:本书是与“十二五”普通高等教育本科国家级规划教材《计算机算法设计与分析(第5版)》配套的辅助教材和国家精品课程教材,分别对主教材中的算法分析题和算法实现题给出了解答或解题思路提示。为了提高学生灵活运用算法设计策略解决实际问题的能力,本书还将主教材中的许多习题改造成算法实现题,要求学生设计出求解算法并上机实现。本书教学资料包含各章算法实现题、测试数据和答案,可在华信教育资源网免费注册下载。本书内容丰富,理论联系实际,可作为高等学校计算机科学与技术、软件工程、信息安全、信息与计算科学等专业本科生和研究生学习计算机算法设计的辅助教材,也是工程技术人员和自学者的参考书。

⑥ 求发《Algorithm Design 》免费电子书网盘下载地址

《AlgorithmDesign》网络网盘免费下载

链接: https://pan..com/s/1QkzeyDjAzuBa5pIxtjEacA

提取码:vvbn

作者:Jon Kleinberg/Éva Tardos
出版社:Addison-Wesley
出版年:2005-3-26
页数:864

简介

算法设计通过观察激发算法的现实问题来介绍算法。本书教学生一系列的设计和分析技术的问题,出现在计算应用程序。本文鼓励了对算法设计过程的理解,并欣赏算法在计算机科学的更广泛领域的作用。

作者Jon Kleinberg最近在《纽约时报》上因其在互联网时代的统计分析研究而被引用。

⑦ 数据结构与算法设计 王晓东 要去哪里下载

给那个网站http://ds.fzu.e.cn/fine/index.htm 不是下载的书籍 ,但是相信对你有用的。

⑧ 求(美)Jon Kleinberg着、张立昂译的《算法设计》中文版pdf,不胜感激

找到这个

⑨ 求《计算机算法设计与分析第5版习题及答案》全文免费下载百度网盘资源,谢谢~

《计算机算法设计与分析第5版习题及答案》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1oxH2d3SdEUN0rx6LJRNBoA

?pwd=8i4l 提取码:8i4l
简介:本书是与“十二五”普通高等教育本科国家级规划教材《计算机算法设计与分析(第5版)》配套的辅助教材和国家精品课程教材,分别对主教材中的算法分析题和算法实现题给出了解答或解题思路提示。为了提高学生灵活运用算法设计策略解决实际问题的能力,本书还将主教材中的许多习题改造成算法实现题,要求学生设计出求解算法并上机实现。本书教学资料包含各章算法实现题、测试数据和答案,可在华信教育资源网免费注册下载。本书内容丰富,理论联系实际,可作为高等学校计算机科学与技术、软件工程、信息安全、信息与计算科学等专业本科生和研究生学习计算机算法设计的辅助教材,也是工程技术人员和自学者的参考书。

⑩ 《算法设计技巧与分析》pdf下载在线阅读,求百度网盘云资源

《算法设计技巧与分析》([沙特]M. H. Alsuwaiyel)电子书网盘下载免费在线阅读

资源链接:

链接:

提取码:47oo

书名:算法设计技巧与分析

作者:[沙特]M. H. Alsuwaiyel

译者:吴伟昶

豆瓣评分:7.5

出版社:电子工业出版社

出版年份:2004-8

页数:318

内容简介:

本书是国际着名算法专家李德财教授主编的系列丛书“Lecture Notes Series on Computing”中的一本。本书涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用背景,注意用与其他技术比较的方法说明它的特征,并提供大量相应实际问题的例子。本书同时也强调了对每一种算法的详细的复杂性分析。全书分七部分19章,从算法设计和算法分析的基本概念和方法入手,先后介绍了递归技术、分治、动态规划、贪心算法、图的遍历等技术,对NP完全问题进行了基本但清楚的讨论。对概率算法、近似算法和计算几何这些近年来发展迅猛的领域也用一定的篇幅讲述了基本内容。书中每章后都附有大量的练习题,有利于读者对书中内容的理解和应用。

本书结构简明,内容丰富,适合于作为计算机学科以及相关学科算法课程的教材和参考书,尤其适宜于学过数据结构和离散数学课程之后的算法课教材。同时也可作为从事算法研究的一本好的入门书。

热点内容
android发送at指令 发布:2024-10-18 13:14:18 浏览:658
安卓手机哪个工艺最好 发布:2024-10-18 13:01:43 浏览:282
源程序编译过程中装配器 发布:2024-10-18 13:01:43 浏览:117
如何查询服务器的序列号 发布:2024-10-18 12:57:04 浏览:669
钻石脚本 发布:2024-10-18 12:56:59 浏览:851
用命令创建数据库 发布:2024-10-18 12:56:01 浏览:529
sqlserver2008维护 发布:2024-10-18 12:54:44 浏览:78
全款查封带大本未解压 发布:2024-10-18 12:51:34 浏览:943
安卓机如何使用苹果的流量 发布:2024-10-18 12:51:24 浏览:934
中国电脑服务器的发展 发布:2024-10-18 12:31:38 浏览:777