新書推薦:
《
制度为什么重要:政治科学中的新制度主义(人文社科悦读坊)
》
售價:NT$
290.0
《
梦醒子:一位华北乡居者的人生(1857—1942))(第2版)
》
售價:NT$
340.0
《
啊哈!原来如此(中译本修订版)
》
售價:NT$
290.0
《
部分识别入门——计量经济学的创新性方法
》
售價:NT$
345.0
《
东野圭吾:变身(来一场真正的烧脑 如果移植了别人的脑子,那是否还是我自己)
》
售價:NT$
295.0
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:NT$
750.0
《
甘于平凡的勇气
》
售價:NT$
225.0
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:NT$
240.0
|
內容簡介: |
本教材是基于作者所创立的计算教学论编写的,是为实现教学效率显著提升而对计算教学论提出的思想、 方法和工具的深广应用。 本教材共 12 章。第 1 章由 Euclid GCD 算法引出算法的定义,并介绍基于可视化的算法学习方法,第 2~5 章分别介绍算法的穷举设计方法、算法复杂度分析、算法的递归设计方法和基于比较的排序算法,第 6~10 章 分别介绍分治、动态规划、贪心、回溯和分支限界等经典的算法设计方法,第 11 章介绍 RSA 算法,第 12 章介 绍 NP 理论。 本教材可作为高等学校计算机科学与技术专业算法设计与分析课程的教材,也可作为计算机及相关专业研 究生和科研、工程或技术人员自学算法设计与分析的参考书。
|
關於作者: |
段会川 教授,长期致力于以计算改进教和学的效率,并创立了计算教学论学说。该学说以计算的本质能力即算法化的知识表达和解析改进教与学的效率,在《算法设计与分析》和《计算机网络原理》课程中取得了很好的效果。
|
目錄:
|
目 录第 1 章 算法及其可视化教学支持系统 ............ 1初识算法:Euclid GCD 算法 .............. 11.1.1 GCD 及因子分解方法 .............. 11.1.2 Euclid GCD 算法 ....................... 3算法的定义 .......................................... 31.2.1 算法是一种求解问题的科学方法 ................................... 41.2.2 算法的克努特定义.................... 51.2.3 算法的图灵机定义.................... 6算法的描述方法 .................................. 81.3.1 算法的自然语言描述方法 ........ 81.3.2 算法的流程图描述方法 ............ 81.3.3 算法的伪代码描述方法 ............ 91.3.4 算法的现代版 C++描述方法 ... 101.3.5 设计算法求解问题的基本过程 ................................. 10可视化算法学习的支持工具............. 121.4.1 CAAIS 的基本界面及其功能 ......................................... 121.4.2 算法 CD-AV 演示的基本操作 ......................................... 13使用现代版 C++进行算法实验 ........ 151.5.1 现代版 C++的算法实验环境建议 ................................. 151.5.2 算法的现代版 C++实现方式——以 Euclid GCD 算法为例 ................................. 16算法国粹——《九章算术》中的二进制 GCD 算法 .............................. 171.6.1 《九章算术》中的更相减损术——最早的二进制GCD 算法 ................................ 171.6.2 现代版的二进制 GCD 算法 .... 18习题 ............................................................ 19参考文献 ..................................................... 20第 2 章 算法的穷举设计方法 .......................... 22穷举算法设计基础 ............................ 22穷举算法设计示例 ............................ 232.2.1 百钱买百鸡问题算法设计 ..... 232.2.2 素性测试的试除算法设计 ..... 262.2.3 顺序搜索算法设计及 CD-AV 演示 ......................................... 282.2.4 洗牌算法设计及 CD-AV 演示 29伪随机数发生器及其在算法实验中的应用 ............................................ 312.3.1 生成伪随机数的线性同余法 ... 312.3.2 传统 C 语言标准库中的伪随机函数及其应用 ............. 322.3.3 现代版 C++标准库中的伪随机函数及其应用 ............. 332.4 算法国粹——图灵奖获得者姚期智院士的伪随机数理论 ........................ 342.4.1 姚期智院士密码学安全的伪随机数理论 ......................... 352.4.2 LCG 不是密码学安全的 ........ 352.4.3 Java JDK 提供的密码学安全的伪随机数发生器 ......... 37习题 ........................................................... 39参考文献 ..................................................... 40第 3 章 算法复杂度分析 .................................. 42算法复杂度分析基础 ........................ 423.1.1 算法的输入规模及复杂度计量 ......................................... 423.1.2 算法的最好、最坏和平均情况复杂度 ............................. 43算法复杂度的渐近分析方法 ............ 453.2.1 算法的渐近复杂度及其记法 . 463.2.2 常见的算法复杂度阶及其关系 ......................................... 51 算法设计与分析——基于计算教学论的解析- VIII -3.2.3 算法复杂度渐近分析的基本范型 ................................. 53大整数算术运算的复杂度 ................ 553.3.1 二进制数的竖式算术运算的复杂度 ..................................... 553.3.2 大整数的多精度表示 .............. 573.3.3 多精度整数算术运算的复杂度 ..................................... 57Euclid GCD 算法的复杂度分析 ........ 593.4.1 Fibonacci 数列及其通项的闭式解 ..................................... 593.4.2 Euclid GCD 算法复杂度的详细分析 ................................. 62算法复杂度的平摊分析方法............. 643.5.1 平摊分析方法概述.................. 643.5.2 Fibonacci 堆的基本操作及其复杂度的平摊分析.................. 66算法复杂度的实验分析法 ................ 703.6.1 算法复杂度实验分析的必要性和基本过程.................. 703.6.2 算法复杂度的实验分析法示例 ......................................... 72问题的复杂度 .................................... 733.7.1 问题的复杂度概述.................. 733.7.2 基于比较的排序问题的复杂度 ..................................... 74算法国粹——姚期智院士的通信复杂性理论 ........................................ 763.8.1 通信复杂性的问题定义 .......... 763.8.2 通信复杂性理论的基本成果.... 77习题 ............................................................ 80参考文献 ..................................................... 81第 4 章 算法的递归设计方法 .......................... 84递归算法的普适性及其理论内涵 ..... 844.1.1 递归算法的基本特性及实例 .... 844.1.2 递归是一种普适的算法表达方法 ......................................... 86子集遍历问题的递归穷举算法 ......... 884.2.1 子集遍历问题及其递归穷举算法设计 ................................. 884.2.2 现代版 C++实现与 CD-AV 演示设计 ................................. 90全排列遍历问题的递归穷举算法 .... 934.3.1 全排列遍历问题及其递归穷举算法设计 ......................... 934.3.2 现代版 C++实现与 CD-AV 演示设计 ................................. 960-1 背包问题及其递归穷举算法 ...... 984.4.1 0-1 背包问题的定义及解空间分析 ............................. 994.4.2 0-1 背包问题的递归穷举算法 ....................................... 100TSP 问题及其递归穷举算法 .......... 1014.5.1 TSP 问题的定义及解空间分析 ....................................... 1014.5.2 TSP 问题的递归穷举算法 ... 103栈框架及将递归算法转换为迭代算法的方法 ...................................... 1054.6.1 函数调用的栈框架 ............... 1054.6.2 将递归算法转换为迭代算法的方法 ........................... 107算法国粹——管梅谷教授的中国邮递员问题 ............................... 1114.7.1 CPP 与欧拉回路 .................... 1114.7.2 CPP 的求解思路与算法 ........ 112习题 .......................................................... 114参考文献 .................................................... 116第 5 章 基于比较的排序算法 ......................... 118冒泡排序算法 ................................... 1185.1.1 基本思想、伪代码与复杂度分析 ........................................ 1185.1.2 现代版 C++实现 ................... 1205.1.3 CD-AV 演示设计 .................. 121插入排序算法 .................................. 1225.2.1 基本思想、伪代码与复杂度分析 ....................................... 1235.2.2 现代版 C++实现 ................... 1255.2.3 CD-AV 演示设计 .................. 125堆排序算法 ...................................... 1265.3.1 二叉堆的理论及相关算法 ... 127目录- IX -5.3.2 基本思想、伪代码与复杂度分析 ....................................... 1315.3.3 现代版 C++实现 ................... 1335.3.4 CD-AV 演示设计 .................. 1335.3.5 优先队列简介 ....................... 136算法国粹——π 值计算方法 ............ 1375.4.1 刘徽关于 π 值的“割圆术”计算方法 ............................... 1375.4.2 祖冲之的 π 值计算成果 ........ 1385.4.3 π 值的近现代计算方法和计算成果 ............................... 138习题 .......................................................... 139参考文献 ................................................... 140第 6 章 算法的分治设计方法 ........................ 141分治法基础 ...................................... 1416.1.1 分治法概述 ........................... 1416.1.2 二分搜索算法 ....................... 142Karatsuba 乘法算法 ......................... 1446.2.1 大整数乘法的朴素分治算法 ....................................... 1446.2.2 大整数乘法的 Karatsuba 算法 ....................................... 145归并排序算法 .................................. 14
|
|