内容介绍
《计算机常用算法与程序设计教程》遵循“实用内容,适当难度,设计导向,能力培养”要求,讲述了详尽无遗的故事、回溯、分治、递归、递推、贪婪算法动态规划等常用的计算机算法,并简要介绍了仿真、智能优化和并行处理。本书侧重于常用算法的设计与应用,算法设计与程序实现的结合,算法的改进与程序优化,力求理论与实践相结合,算法与程序相统一。
书中介绍的算法通常给出一个完整的C程序,用于TC(VC)环境,它为学习常见的计算机算法和编程提供了一个示例。为了方便读者练习,每章都附有练习题,附录中给出了解题练习的算法提示。
本书可作为高校计算机及相关专业使用“算法设计与分析”常见的计算机算法和程序设计”课程资料也可供软件设计者和计算机爱好者参考。
目录
- 第1章算法与程序设计简介
- 1.1算法与算法描述
- 1.1.1算法
- 1.1.2算法描述
- 1.2算法复杂性分析
- 1.2.1时间复杂度
- 1.2.2空间复杂度
- 1.3程序设计简介
- 1.3.1算法与程序
- 1.3.2结构化程序设计
- 习题
- 第2章穷举与回溯
- 2.1穷举及其应用
- 2.1.1穷举概述
- 2.1.2穷举应用
- 2.2穷举设计的优化
- 2.2.1优选穷举对象
- 2.2.2优化穷举循环参量
- 2.2.3精简穷举循环
- 2.3回溯法及其描述
- 2.3.1回溯的基本概念
- 2.3.2回溯法描述
- 2.3.3回溯法的效益分析
- 2.4回溯设计应用
- 2.4.1桥本分数式
- 2.4.2排列组合
- 2.4.3德布鲁金环序列
- 2.4.4高斯皇后问题及其拓展
- 2.5回溯设计的优化
- 习题
- 第3章递归与分治
- 3.1递归及其应用
- 3.1.1递归与递归调用
- 3.1.2递归应用
- 3.2分治法概述
- 3.2.1分治法基本思想
- 3.2.2分治算法设计方法和特点
- 3.2.3分治法的时间复杂度
- 3.3分治法的基本应用
- 3.3.1数据查找与排序
- 3.3.2计数逆序排名问题
- 3.3.3投资问题
- 3.4消除递归
- 3.4.1一般的递归转非递归
- 3.4.2分治算法中的递归转化
- 习题
- 第4章递推
- 4.1递推概述
- 4.1.1递推算法
- 4.1.2递推实施步骤与描述
- 4.2递推数列
- 4.2.1裴波那契数列与卢卡斯数列
- 4.2.2分数数列
- 4.2.3幂序列
- 4.2.4双关系递推数列
- 4.3递推数阵
- 4.3.1杨辉三角
- 4.3.2折叠方阵
- 4.4应用递推求解应用题
- 4.4.1猴子爬山问题
- 4.4.2整币兑零问题
- 4.4.3整数划分问题
- 4.5递推与递归比较
- 习题
- 第5章贪心算法
- 5.1贪心算法概述
- 5.2贪心算法的理论基础
- 5.3删数字问题
- 5.4背包问题
- 5.4.10-1背包问题
- 5.4.2可拆背包问题
- 5.5覆盖问题
- 5.6图的着色问题
- 5.7遍历问题
- 5.8最小生成树
- 5.9哈夫曼编码
- 习题
- 第6章动态规划
- 6.1一般方法与求解步骤
- 6.1.1一般方法
- 6.1.2动态规划求解步骤
- 6.2装载问题
- 6.3插入乘号问题
- 6.40-1背包问题求解
- 6.4.10-1背包问题
- 6.4.2二维0-1背包问题
- 6.5最长子序列探索
- 6.5.1最长非降子序列
- 6.5.2最长公共子序列
- 6.6路径搜索
- 6.6.1点数值三角形的路径搜索
- 6.6.2边数值矩形的路径搜索
- 6.7动态规划与其他算法的比较
- 6.7.1动态规划与递推比较
- 6.7.2动态规划与贪心算法比较
- 习题
- 第7章模拟
- 7.1模拟概述
- 7.2运算模拟
- 7.2.1运算模拟描述
- 7.2.2n个1的整除问题
- 7.2.3尾数前移问题
- 7.2.4阶乘与幂的计算
- 7.2.5求圆周率π
- 7.3随机模拟
- 7.3.1进站时间模拟
- 7.3.2蒙特卡罗模拟计算
- 7.3.3模拟发扑克牌
- 7.4操作过程模拟
- 7.4.1洗牌
- 7.4.2泊松分酒
- 7.4.3模拟小孔流水
- 7.5模拟外索夫游戏
- 习题
- 第8章智能优化
- 8.1模拟退火算法
- 8.1.1物理退火过程和Metropolis准则
- 8.1.2模拟退火算法概述
- 8.1.3应用举例
- 8.2遗传算法
- 8.2.1生物的进化与遗传
- 8.2.2遗传算法概述
- 8.2.3遗传算法关键参数
- 8.2.4遗传算法应用举例
- 8.3粒子群优化算法
- 8.3.1粒子群算法的基本结构
- 8.3.2粒子群算法的关键参数
- 8.3.3应用举例
- 8.4人工神经网络
- 8.4.1神经网络模型
- 8.4.2神经网络学习规则
- 习题
- 第9章并行算法简介
- 9.1基本概念
- 9.1.1并行计算机系统结构模型
- 9.1.2并行计算性能评价
- 9.2并行算法设计
- 9.2.1SIMD共享存储模型
- 9.2.2SIMD互连网络模型
- 9.2.3MIMD共享存储模型
- 9.2.4MIMD异步通信模型
- 9.3并行程序开发
- 9.3.1并行程序设计概念
- 9.3.2共享存储系统并行编程
- 9.3.3分布存储系统并行编程
- 习题
- 附录1习题解答算法提要
- 附录2C常用库函数
- 参考文献