图书介绍

计算与算法导论PDF|Epub|txt|kindle电子书版本网盘下载

计算与算法导论
  • (美)Russell L. Shackelford著;章小莉等译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7505392980
  • 出版时间:2003
  • 标注页数:288页
  • 文件大小:23MB
  • 文件页数:310页
  • 主题词:电子计算机-计算方法-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

计算与算法导论PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 计算视角2

第1章 技术、科学与文化的发展史2

1.1 技术创新与人类进化2

1.1.1 历史发展的模式3

1.1.2 科学领域的范式变迁3

1.1.3 范式变迁的特点3

1.2 范式发展历史的概述4

1.2.1 原始部族意识时代4

1.2.2 字母表和抽象思维的萌芽4

1.2.3 绝对抽象思维的时代5

1.2.4 机械的媒体技术6

1.2.5 “机械”思维的时代7

1.2.6 电子媒体技术7

1.3 最近几十年来技术发展回顾8

1.3.1 社会形态变迁过程描述8

1.3.2 正在形成中的社会形态的特征9

1.3.3 新的社会形态的中心主题10

1.4 正在形成中的社会形态11

1.4.1 现象的算法概念12

1.4.2 模拟和实验的方法12

1.4.3 得到的启发14

习题16

第2章 算法模型18

2.1 什么是算法18

2.2 好算法的要素21

2.2.1 精度21

2.2.2 简单21

2.2.3 抽象分级22

2.3 算法与计算机24

2.3.1 计算机做什么24

2.3.2 计算机与二进制数据24

2.3.3 计算机中的抽象分级25

2.3.4 比较算法与计算机程序27

2.3.5 比较数据与信息27

2.4 算法组件28

2.4.1 数据结构28

2.4.2 数据操作指令28

2.4.3 条件表达式29

2.4.4 控制结构29

2.4.5 模块29

2.5 从计算视角看问题30

2.5.1 用算法表达式构思行为30

2.5.2 用过程构思展示行为的东西30

2.5.3 用不同抽象等级构思算法30

2.5.4 理解复杂度如何限制算法的有用性31

2.5.5 撇开其他视角32

小结33

习题34

第二部分 算法工具38

第3章 基本数据与操作38

3.1 算法语言38

3.2 创建简单变量39

3.2.1 变量标识符40

3.3 运算符40

3.3.1 赋值运算符40

3.3.2 基本操作41

3.3.3 输入/输出运算符42

3.4 原子数据类型44

3.4.1 数字型44

3.4.2 字符44

3.4.3 布尔型45

3.4.4 指针型45

3.5 复杂数据类型45

3.5.1 字符串45

3.5.2 其他复杂数据类型46

3.6 变量声明和初始化46

3.6.1 数据声明的位置46

3.6.2 选择标识符名字46

3.6.3 初始化变量46

3.7 固定的数据47

3.7.1 常量47

3.7.2 文字值47

3.8 一般规则48

3.8.1 算法的一般结构48

3.8.2 标识符格式49

3.8.3 类型匹配49

3.9 算法判定50

3.9.1 基本判定50

3.9.2 判定与数据类型51

3.9.3 判定活动51

3.9.4 复杂判定与布尔操作比较54

3.9.5 嵌套的判定56

小结59

习题59

第4章 过程抽象的方法62

4.1 基本思想62

4.2 根据什么模块化63

4.3 对模块接口的需要63

4.3.1 参数64

4.3.2 参数的三种基本类型64

4.4 模块的创建和使用64

4.4.1 创建过程和函数65

4.4.2 调用过程和函数67

4.4.3 使用多个参数68

4.5 参数表71

4.6 数据作用域71

4.6.1 作用域的三种有效范围72

4.6.2 变量的作用域72

4.6.3 常量作用域72

4.7 参数的类型73

4.7.1 输入参数74

4.7.2 输出参数75

4.7.3 输入/输出参数78

4.8 较大的范例80

4.9 过程抽象的重要性83

4.9.1 编写算法83

4.9.2 测试代码84

4.9.3 维护代码85

4.9.4 重用逻辑85

4.9.5 在不同算法中重用编码87

4.10 递归控制87

4.10.1 递归的两种形式88

4.10.2 跟踪递归模块的执行89

4.10.3 用递归解决问题90

4.10.4 使用堆栈来跟踪代码91

4.10.5 递归的作用94

小结96

习题97

第5章 数据抽象的方法102

5.1 数据的意义102

5.2 组织多个数据块103

5.3 记录103

5.3.1 创建新的记录数据类型104

5.3.2 访问记录的数据域105

5.4 类型与变量的区别105

5.4.1 数据类型扩展了语言105

5.4.2 数据类型的作用域106

5.4.3 用户自定义数据类型的抽象能力106

5.4.4 匿名数据类型107

5.5 指针107

5.6 动态数据结构109

5.7 链表110

5.7.1 链表的结构110

5.7.2 使用指针来访问节点111

5.7.3 使用指针来添加节点115

5.7.4 使用指针来删除节点115

5.7.5 导航链表117

5.7.6 遍历链表117

5.7.7 递归链表遍历117

5.7.8 递归链表的查找120

5.7.9 简化表达式的计算120

5.7.10 建立链表121

5.7.11 从链表中删除值124

5.7.12 链表特性小结125

5.8 链接数据的作用域125

5.8.1 静态与动态变量125

5.8.2 在链接数据的参数保护中的漏洞128

5.9 二叉树129

5.9.1 遍历二叉树130

5.9.2 二叉查找树132

5.9.3 中序遍历BST132

5.9.4 前序和后序遍历135

5.9.5 查找二叉查找树136

5.9.6 添加节点到BST中138

5.9.7 从BST中删除节点138

5.10 图139

5.11 迭代控制140

5.12 迭代与递归143

5.13 数组144

5.13.1 数组与链表146

5.13.2 遍历数组146

5.13.3 查找数组147

5.13.4 更有效的数组查找147

5.14 常量的强大抽象能力149

5.14.1 易修改性149

5.14.2 可读性150

5.15 创建新数据类型的强大抽象能力150

5.15.1 混合使用原子类型和复杂类型151

5.15.2 记录数组151

5.15.3 记录的记录154

5.15.4 数组的数组155

小结157

习题158

第6章 构造算法的方法162

6.1 遍历162

6.1.1 遍历线性结构162

6.1.2 遍历非线性结构163

6.1.3 堆栈和队列164

6.1.4 广度优先遍历167

6.1.5 广度优先遍历的实现169

6.2 查找170

6.2.1 用遍历实现简单查找170

6.2.2 关键字域170

6.2.3 更有效的查找171

6.3 排序172

6.4 划分与求解173

6.5 优化176

6.5.1 贪心算法176

6.5.2 动态编程179

小结181

习题182

第7章 现实世界对象的建模方法185

7.1 面向对象的范式185

7.1.1 面向对象方法的优势186

7.1.2 面向对象方法应具有的特征186

7.2 实现良好的封装性186

7.2.1 过程抽象和数据抽象的局限性187

7.2.2 抽象数据类型的概念187

7.2.3 使用类定义抽象数据类型188

7.2.4 使用对象来创建抽象数据类型的实例190

7.3 类的剖析190

7.3.1 public部分192

7.3.2 protected部分192

7.3.3 类中数据的作用域193

7.3.4 说明194

7.3.5 声明和使用对象194

7.4 类属参数和可重用性195

7.5 跟踪对象行为的执行197

7.6 复制和克隆操作198

7.7 实现良好的可适应性201

7.7.1 继承和扩展行为201

7.7.2 重新定义继承的标识202

7.7.3 修改public/protected状态204

7.7.4 继承类型小结204

7.7.5 解决二义性205

7.8 实现多态性205

7.9 任何事物都是对象208

小结213

习题214

第8章 验证正确性的方法218

8.1 Bug和调试218

8.1.1 二义性219

8.1.2 语法错误219

8.1.3 语义错误219

8.1.4 逻辑错误221

8.2 证明算法的正确性223

8.3 验证法225

8.4 能做的最重要的事情225

小结228

习题228

第9章 估算成本和复杂度的方法232

9.1 性能度量232

9.2 工作度量234

9.3 所做工作的分析235

9.4 实际输入与随机输入236

9.5 增加复杂度236

9.6 性能和数据结构240

9.7 进一步增加复杂度241

9.8 估算冒泡排序法的复杂度243

9.9 合理算法和不合理算法247

9.10 不合理算法的种类250

小结252

习题252

第三部分 计算的局限性256

第10章 并发与并行256

10.1 概述:并发与并行256

10.1.1 什么是并发256

10.1.2 什么是并行257

10.1.3 两者之间的混淆257

10.2 并发258

10.2.1 多道程序设计258

10.2.2 多重处理258

10.2.3 多任务258

10.2.4 分布式系统259

10.3 并发中的问题259

10.3.1 保护259

10.3.2 公平性259

10.3.3 死锁260

10.3.4 并发问题的总结261

10.4 并行261

10.5 并行的局限263

10.5.1 处理器的固定数量263

10.5.2 额外开销264

10.5.3 依赖264

10.5.4 优先顺序268

小结271

习题271

第11章 问题复杂度的层次274

11.1 问题复杂度274

11.2 开放式问题和闭合式问题275

11.3 简单问题和复杂问题275

11.4 跨越界限的问题276

11.5 NP完全问题276

11.6 证明、预言和确定性277

11.6.1 证明278

11.6.2 预言278

11.6.3 确定性与非确定性279

11.7 NP完全问题和复杂问题279

11.8 不可判定问题279

11.8.1 不可判定问题的证明281

小结282

习题283

第12章 计算与算法的历史285

12.1 原始范式285

12.2 抽象的出现285

12.3 完全抽象的范式286

12.4 机械装置的出现286

12.5 机械论思想的范式286

12.6 实时连接的出现287

12.7 互联过程范式287

12.8 未来趋势288

热门推荐