标签分类
当前位置:首页 > 计算机理论电子书 > 算法导论电子书网盘下载
算法导论 算法导论
40313249

40313249 提供上传

资源
23
粉丝
43
喜欢
80
评论
2

    算法导论 PDF 超清第3版

    算法导论电子书
    • 发布时间:

    给大家带来的一篇关于算法导论相关的电子书资源,介绍了关于算法导论方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小141 MB,科尔曼编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.5,更多相关的学习资源可以参阅 计算机理论电子书、等栏目。

  • 算法导论 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1DT8ZSd7VTNeQEP-Kzo51Mw
  • 分享码:osn7
  • 算法导论 第三版

    在相关优化算法的书中,有某些描述十分认真细致,但不足全方位;另某些涉及到了很多的主题,但又欠缺精确性。这书将精确性和整体性合为一体,深层次探讨各种优化算法,并切实使这种优化算法的设计方案和剖析能为每个层级的用户接纳。本书各章自成体系,能够做为单独的学习培训模块;优化算法以英文和伪代码的方式叙述,具有基本编程设计工作经验的人就看得懂;表明和表述务求通俗易懂,无失深层和数学课精确性。
    本书选料經典、主题鲜明、合理配置、逻辑性清楚,对本科毕业的数据结构课程内容和硕士研究生的优化算法课程内容全是十分好用的教材内容,在IT专业技术人员的职业发展中,这书都是1本案头必需的教材或工程项目实践活动指南。
    第3版的关键转变:
    ·增加了van Emde Boas树和多核优化算法,而且将向量基本挪到附则。
    ·修定了递归式(如今称之为“分治对策”)那章节的內容,更普遍地遮盖分治法。
    ·清除两章非常少授课的內容:二项堆和排列互联网。
    ·修定了动态规划和贪心算法有关內容。
    ·流互联网有关原材料如今根据旁边的所有流。
    ·因为有关向量基本和Strassen优化算法的原材料移来到别的章,矩阵运算这章节的內容所占篇数更小。
    ·改动了对Knuth-Morris-Pratt字符数组匹配算法的探讨。
    ·增加100道训练和28道思考题,还升级并填补了论文参考文献。

    目录

    • 出版者的话
    • 译者序
    • 前言
    • 第一部分基础知识
    • 第1章算法在计算中的作用
    • 1.1算法
    • 1.2作为一种技术的算法
    • 思考题
    • 本章注记
    • 第2章算法基础
    • 2.1插入排序
    • 2.2分析算法
    • 2.3设计算法
    • 2.3.1分治法
    • 2.3.2分析分治算法
    • 思考题
    • 本章注记
    • 第3章函数的增长
    • 3.1渐近记号
    • 3.2标准记号与常用函数
    • 思考题
    • 本章注记
    • 第4章分治策略
    • 4.1最大子数组问题
    • 4.2矩阵乘法的Strassen算法
    • 4.3用代入法求解递归式
    • 4.4用递归树方法求解递归式
    • 4.5用主方法求解递归式
    • 4.6证明主定理
    • 4.6.1对b的幂证明主定理
    • 4.6.2向下取整和向上取整
    • 思考题
    • 本章注记
    • 第5章概率分析和随机算法
    • 5.1雇用问题
    • 5.2指示器随机变量
    • 5.3随机算法
    • ?5.4概率分析和指示器随机变量的进一步使用
    • 5.4.1生日悖论
    • 5.4.2球与箱子
    • 5.4.3特征序列
    • 5.4.4在线雇用问题
    • 思考题
    • 本章注记
    • 第二部分排序和顺序统计量
    • 第6章堆排序
    • 6.1堆
    • 6.2维护堆的性质
    • 6.3建堆
    • 6.4堆排序算法
    • 6.5优先队列
    • 思考题
    • 本章注记
    • 第7章快速排序
    • 7.1快速排序的描述
    • 7.2快速排序的性能
    • 7.3快速排序的随机化版本
    • 7.4快速排序分析
    • 7.4.1最坏情况分析
    • 7.4.2期望运行时间
    • 思考题
    • 本章注记
    • 第8章线性时间排序
    • 8.1排序算法的下界
    • 8.2计数排序
    • 8.3基数排序
    • 8.4桶排序
    • 思考题
    • 本章注记
    • 第9章中位数和顺序统计量
    • 9.1最小值和最大值
    • 9.2期望为线性时间的选择算法
    • 9.3最坏情况为线性时间的选择算法
    • 思考题
    • 本章注记
    • 第三部分数据结构
    • 第10章基本数据结构
    • 10.1栈和队列
    • 10.2链表
    • 10.3指针和对象的实现
    • 10.4有根树的表示
    • 思考题
    • 本章注记
    • 第11章散列表
    • 11.1直接寻址表
    • 11.2散列表
    • 11.3散列函数
    • 11.3.1除法散列法
    • 11.3.2乘法散列法
    • 11.3.3全域散列法
    • 11.4开放寻址法
    • 11.5完全散列
    • 思考题
    • 本章注记
    • 第12章二叉搜索树
    • 12.1什么是二叉搜索树
    • 12.2查询二叉搜索树
    • 12.3插入和删除
    • 12.4随机构建二叉搜索树
    • 思考题
    • 本章注记
    • 第13章红黑树
    • 13.1红黑树的性质
    • 13.2旋转
    • 13.3插入
    • 13.4删除
    • 思考题
    • 本章注记
    • 第14章数据结构的扩张
    • 14.1动态顺序统计
    • 14.2如何扩张数据结构
    • 14.3区间树
    • 思考题
    • 本章注记
    • 第四部分高级设计和分析技术
    • 第15章动态规划
    • 15.1钢条切割
    • 15.2矩阵链乘法
    • 15.3动态规划原理
    • 15.4最长公共子序列
    • 15.5最优二叉搜索树
    • 思考题
    • 本章注记
    • 第16章贪心算法
    • 16.1活动选择问题
    • 16.2贪心算法原理
    • 16.3赫夫曼编码
    • 16.4拟阵和贪心算法
    • 16.5用拟阵求解任务调度问题
    • 思考题
    • 本章注记
    • 第17章摊还分析
    • 17.1聚合分析
    • 17.2核算法
    • 17.3势能法
    • 17.4动态表
    • 17.4.1表扩张
    • 17.4.2表扩张和收缩
    • 思考题
    • 本章注记
    • 第五部分高级数据结构
    • 第18章B树
    • 18.1B树的定义
    • 18.2B树上的基本操作
    • 18.3从B树中删除关键字
    • 思考题
    • 本章注记
    • 第19章斐波那契堆
    • 19.1斐波那契堆结构
    • 19.2可合并堆操作
    • 19.3关键字减值和删除一个结点
    • 19.4最大度数的界
    • 思考题
    • 本章注记
    • 第20章van Emde Boas树
    • 20.1基本方法
    • 20.2递归结构
    • 20.2.1原型van Emde Boas结构
    • 20.2.2原型van Emde Boas结构上的操作
    • 20.3van Emde Boas树及其操作
    • 20.3.1van Emde Boas树
    • 20.3.2van Emde Boas树的操作
    • 思考题
    • 本章注记
    • 第21章用于不相交集合的数据结构
    • 21.1不相交集合的操作
    • 21.2不相交集合的链表表示
    • 21.3不相交集合森林
    • *21.4带路径压缩的按秩合并的分析
    • 思考题
    • 本章注记
    • 第六部分图算法
    • 第22章基本的图算法
    • 22.1图的表示
    • 22.2广度优先搜索
    • 22.3深度优先搜索
    • 22.4拓扑排序
    • 22.5强连通分量
    • 思考题
    • 本章注记
    • 第23章最小生成树
    • 23.1最小生成树的形成
    • 23.2Kruskal算法和Prim算法
    • 思考题
    • 本章注记
    • 第24章单源最短路径
    • 24.1Bellman?Ford算法
    • 24.2有向无环图中的单源最短路径问题
    • 24.3Dijkstra算法
    • 24.4差分约束和最短路径
    • 24.5最短路径性质的证明
    • 思考题
    • 本章注记
    • 第25章所有结点对的最短路径问题
    • 25.1最短路径和矩阵乘法
    • 25.2Floyd?Warshall算法
    • 25.3用于稀疏图的Johnson算法
    • 思考题
    • 本章注记
    • 第26章最大流
    • 26.1流网络
    • 26.2Ford\Fulkerson方法
    • 26.3最大二分匹配
    • 26.4推送重贴标签算法
    • 26.5前置重贴标签算法
    • 思考题
    • 本章注记
    • 第七部分算法问题选编
    • 第27章多线程算法
    • 27.1动态多线程基础
    • 27.2多线程矩阵乘法
    • 27.3多线程归并排序
    • 思考题
    • 本章注记
    • 第28章矩阵运算
    • 28.1求解线性方程组
    • 28.2矩阵求逆
    • 28.3对称正定矩阵和最小二乘逼近
    • 思考题
    • 本章注记
    • 第29章线性规划
    • 29.1标准型和松弛型
    • 29.2将问题表达为线性规划
    • 29.3单纯形算法
    • 29.4对偶性
    • 29.5初始基本可行解
    • 思考题
    • 本章注记
    • 第30章多项式与快速傅里叶变换
    • 30.1多项式的表示
    • 30.2DFT与FFT
    • 30.3高效FFT实现
    • 思考题
    • 本章注记
    • 第31章数论算法
    • 31.1基础数论概念
    • 31.2最大公约数
    • 31.3模运算
    • 31.4求解模线性方程
    • 31.5中国余数定理
    • 31.6元素的幂
    • 31.7RSA公钥加密系统
    • 31.8素数的测试
    • 31.9整数的因子分解
    • 思考题
    • 本章注记
    • 第32章字符串匹配
    • 32.1朴素字符串匹配算法
    • 32.2Rabin\Karp算法
    • 32.3利用有限自动机进行字符串匹配
    • 32.4Knuth?Morris?Pratt算法
    • 思考题
    • 本章注记
    • 第33章计算几何学
    • 33.1线段的性质
    • 33.2确定任意一对线段是否相交
    • 33.3寻找凸包
    • 33.4寻找最近点对
    • 思考题
    • 本章注记
    • 第34章NP完全性
    • 34.1多项式时间
    • 34.2多项式时间的验证
    • 34.3NP完全性与可归约性
    • 34.4NP完全性的证明
    • 34.5NP完全问题
    • 34.5.1团问题
    • 34.5.2顶点覆盖问题
    • 34.5.3哈密顿回路问题
    • 34.5.4旅行商问题
    • 34.5.5子集和问题
    • 思考题
    • 本章注记
    • 第35章近似算法
    • 35.1顶点覆盖问题
    • 35.2旅行商问题
    • 35.2.1满足三角不等式的旅行商问题
    • 35.2.2一般旅行商问题
    • 35.3集合覆盖问题
    • 35.4随机化和线性规划
    • 35.5子集和问题
    • 思考题
    • 本章注记
    • 第八部分附录:数学基础知识
    • 附录A求和
    • A.1求和公式及其性质
    • A.2确定求和时间的界
    • 思考题
    • 附录注记
    • 附录B集合等离散数学内容
    • B.1集合
    • B.2关系
    • B.3函数
    • B.4图
    • B.5树
    • B.5.1自由树
    • B.5.2有根树和有序树
    • B.5.3二叉树和位置树
    • 思考题
    • 附录注记
    • 附录C计数与概率
    • C.1计数
    • C.2概率
    • C.3离散随机变量
    • C.4几何分布与二项分布
    • *C.5二项分布的尾部
    • 思考题
    • 附录注记
    • 附录D矩阵
    • D.1矩阵与矩阵运算
    • D.2矩阵基本性质
    • 思考题
    • 附录注记
    • 参考文献
    • 索引

    上一篇:HTML5权威指南  下一篇:图灵的秘密:他的生平、思想及论文解读

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    算法导论相关电子书
    学习笔记
    网友NO.197668

    解读python如何实现决策树算法

    数据描述 每条数据项储存在列表中,最后一列储存结果 多条数据项形成数据集 data=[[d1,d2,d3...dn,result], [d1,d2,d3...dn,result], . . [d1,d2,d3...dn,result]] 决策树数据结构 class DecisionNode: '''决策树节点 ''' def __init__(self,col=-1,value=None,results=None,tb=None,fb=None): '''初始化决策树节点 args: col -- 按数据集的col列划分数据集 value -- 以value作为划分col列的参照 result -- 只有叶子节点有,代表最终划分出的子数据集结果统计信息。{‘结果':结果出现次数} rb,fb -- 代表左右子树 ''' self.col=col self.value=value self.results=results self.tb=tb self.fb=fb 决策树分类的最终结果是将数据项划分出了若干子集,其中每个子集的结果都一样,所以这里采用{‘结果':结果出现次数}的方式表达每个子集 def pideset(rows,column,value): '''依据数据集rows的column列的值,判断其与参考值value的关系对数据集进行拆分 返回两个数据集 ''' split_function=None #value是数值类型 if isinstance(value,int) or isinstance(value,float): #定义lambda函数当row[column]=value时返回true split_function=lambda row:row[column]=value #value是字符类型 else: #定义lambda函数当row[column]==value时返回true split_function=lambda row:row[column]==value #将数据集拆分成两个 set1=[row for row in rows if split_function(row)] set2=[row for row in rows if not split_function(row)] #返回两个数据……

    网友NO.834545

    Python md5与sha1加密算法的详细介绍

    这篇文章简单介绍了md5级sha1加密算法的概念、原理,并结合实例形式分析了Python使用hashlib模块实现加密功能的具体操作技巧,需要的朋友可以参考下 如果,md5和sha1加密的内容过多,可以这么用: [python] m = hashlib.md5() m.update('a') m.update('b') s = m.hexdigest() #效果等于m = hashlib.md6('ab').hexd MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。 特性: 首先,它不可逆,没有系统的方法可以知道MD5码原来的文字是什么 其次,这个码具有高度的离散性,没有规律可循。哪怕原信息的一点点变化就会导致MD5的巨大变化,也可以说产生的MD5 码是不可预测的。 最后,由于这个码有128位那么长,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的。 用途: 一般认为MD5码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等 SHA1 SHA1的全称是Secure Hash Algorithm(安全哈希算法) ,是由NIST NSA设计为同DSA一起使用的,它对长度小于26……

    网友NO.397372

    python实现Dijkstra静态寻路算法

    算法介绍 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。 当然目前也有人将它用来处理物流方面,以获取代价最小的运送方案。 算法思路 Dijkstra算法采用的是一种贪心的策略。 1.首先,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合T。 2.其次,原点 s 的路径权重被赋为 0 (dis[s] = 0)。若对于顶点 s 存在能直接到达的边(s,m),则把dis[m]设为w(s, m),同时把所有其他(s不能直接到达的)顶点的路径长度设为无穷大。初始时,集合T只有顶点s。 3.从dis数组选择最小值,则该值就是源点s到该值对应的顶点的最短路径,并且把该点加入到T中,此时完成一个顶点。 4.再次,看看新加入的顶点是否可以到达其他顶点并且看看通过该顶点到达其他点的路径长度是否比源点直接到达短,如果是,那么就替换这些顶点在dis中的值。 5.最后,从dis中找出最小值,重复上述动作,直到T中包含了图的所有顶点(可以到达的)。 算法图形演示 现在有图如下: 每个线的权重以及标识如图所示。 第一步: 建立dis数组和T数组。 首先从起点A 开始,将A可以直接到达的顶点的权……

    网友NO.225820

    Python基于递归算法实现的汉诺塔与Fibonacci数列

    这篇文章主要介绍了Python基于递归算法实现的汉诺塔与Fibonacci数列,结合实例形式分析了汉诺塔与Fibonacci数列的递归实现技巧,需要的朋友可以参考下 本文实例讲述了Python基于递归算法实现的汉诺塔与Fibonacci数列。分享给大家供大家参考,具体如下: 这里我们通过2个例子,学习python中递归的使用。 1. 找出Fibonacci数列中,下标为 n 的数(下标从0计数) Fibonacci数列的形式是这样的:0,1,1,2,3,5,8,13…… ① 使用while循环 ,python2代码如下: def fib(n): a,b=0,1 count=0 while countn: a,b=b,a+b count=count+1 print a 运行结果如下: fib(0) 0 fib(1) 1 fib(2) 1 fib(3) 2 fib(4) 3 fib(5) 5 ② 使用递归(递归必须要有边界条件) ,python2代码如下: def fib(n): if n==0 or n==1:#递归的边界条件 return n else: return fib(n-1)+fib(n-2) 运行结果如下: fib(0) 0 fib(1) 1 fib(2) 1 fib(3) 2 fib(4) 3 fib(5) 5 递归是最能表现计算思维的算法之一,我们以f(4)为例,看一下递归的执行过程: 同一程序,使用递归虽然程序简洁,但递归的执行效率要比循环低,系统的资源消耗比循环大。因为递归是一层一层地往里面调用,结束后又一层一层地返回,所以递归的执行效率并不高。那为什么还要使用递归呢?因为有一些问题,我们找不到非常明显的循环方案,但容易找到明显的递归方案。比如说著名的汉诺塔问题……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明