当前位置:首页 > 工业技术
计算机算法分析与设计
计算机算法分析与设计

计算机算法分析与设计PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:李筑艳编著
  • 出 版 社:贵阳:贵州民族出版社
  • 出版年份:2006
  • ISBN:754121373X
  • 页数:276 页
图书介绍:本书系统地介绍了算法设计与分析的概念和方法,并以理论上分析它们的时间和空间的复杂性,引导读者了解国内外算法理论和应用的主流和最新发展。
上一篇:土木工程材料下一篇:美甲炫10000 上
《计算机算法分析与设计》目录

1.1 问题、算法和程序 1

第1章 基本概念 1

1.2 表述算法的方法 2

1.3 伪代码的语法规则 3

习题 6

第2章 数学预备知识 7

2.1 集合、函数关系 7

2.1.1 集合的表示 7

2.1.2 集合的子集 8

2.1.3 集合的运算 8

2.1.4 序列和多元组 8

2.2 函数关系 9

2.2.3 等价关系 10

2.3 布尔逻辑 10

2.2.2 二元关系的性质 10

2.2.1 二元关系 10

2.4 证明 11

2.4.1 直接证明法 11

2.4.2 间接证明 11

2.4.3 反证法 11

2.4.4 反例证明法 12

2.4.5 数学归纳法 12

2.5 取下整和取上整函数 13

2.6 取模运算 14

2.7 对数 14

2.8 级数求和 14

2.9 求和运算法则 15

2.10 用定积分解求和式的近似值 15

2.11 阶乘函数和二项式系数 16

2.11.1 阶乘 16

2.11.2 二项式系数 16

2.11.3 二项式定理 17

2.12 递推方程 19

2.12.1 常系数线性齐次递推式的求解 19

2.12.2 常系数线性非齐次递推方程的求解 21

2.12.3 扩展递推方程 22

2.12.4 用生成函数法求解递推关系 23

习题 26

第3章 算法复杂性分析 29

3.1 输入规模的度量 29

3.2 运行时间的度量单位 29

3.3 渐进符号基本增长率类型 33

3.3.1 上限 33

3.3.2 下限 33

3.3.3 Θ表示法 34

3.4 化简法则 34

3.5 非递归算法运行时间的计算 34

3.6 递归算法运行时间的计算 36

3.6.1 分治递归的定理方法 37

3.6.2 递归树的方法 38

3.7 算法的最佳、最差和平均复杂性 39

3.8 空间复杂性 41

习题 41

第4章 递归与迭代 45

4.1 递归 45

4.1.1 递归方法计算两个正整数相乘 45

4.1.2 递归方法计算阶乘函数 45

4.1.3 递归方法解全排列问题 46

4.2 迭代 48

4.2.1 迭代方法计算两个正整数相乘 48

4.2.2 迭代方法计算阶乘函数 48

4.2.3 迭代的方法解排列问题 48

4.3 梵天塔问题 49

4.3.1 递归方法解梵天塔问题 49

4.3.2 迭代方法解梵天塔问题 51

4.4.1 递归方法1解阿克曼函数 55

4.4 阿克曼函数 55

4.4.2 递归方法2解阿克曼函数 57

习题 57

第5章 递归与分形图形 59

5.1 递归与分形图形 59

5.2 涡旋曲线 59

5.3 康托(Cantor)三分集 60

5.4 谢尔宾斯基(Sierpinski)垫片 61

5.5 谢尔宾斯基(Sierpinski)地毯 62

5.6 科赫(Koch)曲线 64

习题 66

第6章 算法设计策略的比较与选择 68

6.1 求解斐波那契数列 68

6.1.1 时间复杂性为O(1.618)n+1递归算法 68

6.1.3 时间复杂性为O(n)、空间复杂性为O(l)迭代算法 69

6.1.2 时间和空间复杂性分别为O(n)迭代算法 69

6.1.4 时间复杂性为O(n)、空间复杂性为O(l)递归算法 70

6.1.5 时间复杂性为O(log n)、空间复杂性为O(l)递归算法1 70

6.1.6 时间复杂性为O(1og n)、空间复杂性为O(l)递归算法2 72

6.1.7 时间复杂性为O(1og n)、空间复杂性为O(l)递归算法3 73

6.2 最大子段和问题 74

6.2.1 时间复杂性为O(n3)算法1 74

6.2.2 时间复杂性为O(n3)算法2 75

6.2.3 时间复杂性为O(n2)算法 76

6.2.4 时间和空间复杂性分别为O(n2)算法1 76

6.2.5 时间和空间复杂性分别为O(n2)算法2 77

6.2.6 时间复杂性为O(n log n)算法 78

6.2.7 时间复杂性为O(n)算法 80

习题 80

第7章 排序 83

7.1 插入排序 83

7.2 起泡排序 84

7.3 选择排序 86

7.4 快速排序 88

7.5 归并排序 92

7.6 堆排序 95

7.7 计数排序 99

7.8 基数排序 102

7.9 排序问题的下限 104

习题 106

第8章 分治 109

8.1 求解数组中元素与x相等的个数 109

8.1.1 求解数组中元素与x相等的个数迭代算法 109

8.1.2 求解数组中元素与x相等的个数递归算法 109

8.1.3 求解数组中元素与x相等的个数分治递归算法 110

8.2 判断已排序数组中是否存在给定的元素x 110

8.2.2 判断已排序数组中是否存在给定的元素x分治递归算法 111

8.2.1 判断已排序数组中是否存在给定的元素x迭代算法 111

8.3 两个大整数相乘 112

8.3.1 两个大整数相乘迭代算法 112

8.3.2 两个大整数相乘分治递归算法1 113

8.3.3 两个大整数相乘分治递归算法2 115

8.3.4 两个大整数相乘分治递归算法3 116

8.3.5 两个大整数相乘分治递归算法4 116

8.4.1 两个矩阵相乘迭代算法 117

8.4 两个矩阵相乘 117

8.4.2 两个矩阵相乘分治递归算法1 118

8.4.3 两个矩阵相乘分治递归算法2 120

8.5 两个多项式乘积 121

8.5.1 两个多项式乘积迭代算法 122

8.5.2 两个多项式乘积分治递归算法1 123

8.5.3 两个多项式乘积分治递归算法2 124

习题 127

9.1.1 计算二项式系数递归算法 129

9.1 计算二项式系数 129

第9章 动态规划 129

9.1.2 计算二项式系数动态规划算法 130

9.2 正整数的分拆问题 132

9.2.1 正整数的分拆递归算法1 132

9.2.2 正整数的分拆递归算法2 134

9.2.3 正整数的分拆递归算法3 135

9.2.4 正整数拆分问题的上界 135

9.2.5 正整数拆分问题的下界 136

9.2.6 正整数的分拆动态规划算法 137

9.3 矩阵连乘问题 138

9.3.1 穷举法解矩阵连乘问题 139

9.3.2 递归方法解矩阵连乘问题 139

9.3.3 动态规划方法解矩阵连乘问题 142

9.4 最优二叉查找树 145

9.4.1 穷举法解最优二叉查找树 146

9.4.2 递归方法解最优二叉查找树 147

9.4.3 动态规划方法解最优二叉查找树 151

9.5 最长公共子序列问题 154

9.5.1 最长公共子序列递归算法 154

9.5.2 最长公共子序列动态规划算法 156

9.6 所有点对最短路径问题 157

9.6.1 所有点对最短路径递归算法 159

9.6.2 所有点对最短路径动态规划算法1 160

9.6.3 所有点对最短路径动态规划算法2 161

9.7 01背包问题 163

9.7.1 01背包递归算法 163

9.7.2 01背包动态规划算法 165

9.8 找零钱问题 168

9.8.1 找零钱递归算法 169

9.8.2 找零钱动态规划算法 170

习题 172

10.1 活动安排问题 175

第10章 贪心算法 175

10.2 分数背包问题 178

10.3 最短路径问题 180

10.4 最小生成树 182

10.4.1 prim算法 183

10.4.2 Kruskal算法 185

10.5 Huffman编码树 188

习题 192

第11章 回溯 194

11.1 八个皇后问题 194

11.2 旅行售货问题 198

11.3 01背包问题 201

11.4 子集合问题 202

11.4.1 子集合算法1 202

11.4.2 子集合算法2 203

11.4.3 子集合算法3 204

习题 205

12.1 15数字谜的问题 207

第12章 分支限界 207

12.2 分配任务问题 211

12.3 旅行售货问题 214

习题 216

13.1.1 寻找数组中最大元素迭代算法 217

13.1.2 寻找数组中最大元素递归算法 217

13.1 寻找数组中最大元素问题 217

第13章 寻找问题 217

13.1.3 寻找数组中最大元素分治递归算法 218

13.2 寻找数组中最小元素和最大元素问题 219

13.2.1 寻找数组中最小元素和最大元素迭代算法1 219

13.2.2 寻找数组中最小元素和最大元素迭代算法2 219

13.2.3 寻找数组中最小元素和最大元素分治递归算法 220

13.3 寻找数组中最大元素和次大元素问题 221

13.3.1 寻找数组中最大元素和次大元素锦标赛算法 221

13.4.1 寻找两个已排序数组的中位数算法1 223

13.4 寻找两个已排序数组的中位数问题 223

13.4.2 寻找两个已排序数组的中位数算法2 224

13.5 寻找两个已排序数组第k小元素问题 226

13.6 寻找数组中主元素问题 227

13.6.1 寻找数组中主元素算法1 227

13.6.2 寻找数组中主元素算法2 228

13.6.3 寻找数组中主元素算法3 228

13.7 选择数组中项和第k小元素问题 229

13.7.1 选择数组中项和第k小元素算法 229

13.7.2 划分元素5个为一组选择算法的时间复杂性 233

13.7.3 划分元素7个为一组选择算法的时间复杂性 235

13.7.4 划分元素3个为一组选择算法的时间复杂性 235

13.8 模式串匹配 235

13.8.1 直接匹配算法 236

13.8.2 模式匹配的一种改进算法 238

习题 241

14.1.1 x进制数相加算法 244

第14章 算术运算、数值算法 244

14.1 加法 244

14.1.2 二进制数相加算法 245

14.2 减法 246

14.2.1 x进制数相减算法 246

14.2.2 二进制数相减算法 247

14.3 乘法 249

14.3.1 x进制数相乘算法 249

14.3.2 二进制数相乘算法 250

14.4 除法 251

14.4.1 x进制数相除算法 251

14.4.2 二进制数相除算法 252

14.5 整数幂 253

14.5.1 整数幂迭代算法 253

14.5.2 整数幂递归算法 253

14.6 二进制幂 254

14.5.3 整数幂分治迭代算法 254

14.5.4 整数幂分治递归算法 254

14.7 模取幂运算 255

14.8 模取二进制幂运算 256

14.9 多项式的快速求值 257

14.9.1 多项式求值算法1 257

14.9.2 多项式求值算法2 258

14.9.3 伯恩斯坦(Bernstein)多项式求值 259

习题 259

第15章 数论算法 262

15.1 最大公约数问题 262

15.1.1 最大公约数迭代算法1 262

15.1.2 最大公约数迭代算法2 262

15.1.3 最大公约数迭代算法3 263

15.1.4 最大公约数递归算法 263

15.3.1 扩展欧几里得递归算法 264

15.3 扩展欧几里得算法 264

15.2 求最小公倍数 264

15.3.2 扩展欧几里得迭代算法 265

15.4 素性检测 267

15.4.1 素性检测算法1 267

15.4.2 素性检测算法2 267

15.4.3 爱拉托斯散(Eratosthenes)筛选算法 268

15.4.4 素性检测算法3 269

15.4.5 素性检测算法4 269

15.4.6 素性检测算法5 270

15.4.7 素性检测算法6 270

15.5 RSA算法 272

15.5.1 欧拉定理 272

15.5.2 RSA加密与解密算法 273

习题 274

主要参考文献 276

返回顶部