计算机常用算法与程序设计案例教程

出版时间:2011-7  出版社:清华大学出版社  作者:杨克昌  
Tag标签:无  

内容概要

  本书遵循“精选案例,面向设计,深入浅出,注重能力培养”的要求,以“案例”形式实现“算法与程序设计”教学。本书精选枚举、递推、递归、回溯、动态规划、贪心算法与模拟等常用算法,精选各算法求解的典型案例,注重算法设计与程序实现,注重算法改进与程序优化,力求理论与实际相结合,算法与程序相统一。每一个案例求解,从案例提出、算法设计与描述,到程序实现、运行结果与讨论,环环相扣,融为一体。
  本书所有案例求解给出详细的算法描述与完整的c程序。每章最后附有习题,在附录中给出习题求解提示,所有源程序可从清华大学出版社网站下载。
  本书可作为高等院校计算机及相关专业“算法设计与分析”、“计算机程序设计”课程教材,也可供软件设计人员与计算机爱好者学习参考。

书籍目录

第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.2 统计与求和
2.2.1 指定特殊整数
2.2.2 最简真分数
2.3 解方程
2.3.1 解佩尔方程
2.3.2 解超越方程
2.4 解不等式
2.4.1 分数不等式
2.4.2 代数和不等式
2.5 求最值
2.5.1 基于素数的代数和
2.5.2 整数的因数比
2.6 数组与数列
2.6.1 双和数组
2.6.2 基于2x+3y的递推数列
2.7 数式探求
2.7.1 逆序乘积式
2.7.2 完美综合式
2.8 趣味数阵
2.8.1 素数幻方
2.8.2 和积三角形
2.9 枚举应用小结
习题
第3章 递推
3.1 递推概述
3.1.1 递推算法
3.1.2 递推实施步骤与描述
3.2 递推数列
3.2.1 摆动数列
3.2.2 分数数列
3.3 幂序列
3.3.1 双幂序列
3.3.2 幂积序列
3.4 数阵探索
3.4.1 杨辉三角
3.4.2 折叠方阵
3.5 整数划分问题
3.5.1 整数划分递推设计
3.5.2 整数划分递推优化
3.6 水手分椰子问题
3.6.1 水手分椰子
3.6.2 n个水手分椰子
3.7 猴子爬山
3.7.1 简单案例的具体递推
3.7.2 一般情形的分级递推
3.8 递推应用小结
习题
第4章 递归
4.1 递归概述
4.2 排队购票
4.3 汉诺塔问题
4.3.1 求移动次数
4.3.2 展示移动过程
4.4 旋转数阵
4.4.1 双转向旋转方阵
4.4.2 m行n列顺转矩阵
4.5 快速排序与选择
4.5.1 快速排序
4.5.2 分区交换选择
4.6 排列组合的实现
4.6.1 实现排列?a(n,m?)
4.6.2 实现组合?c(n,m?)
4.6.3 实现复杂排列
4.7 整数的拆分
4.7.1 拆分零数取自连续区间
4.7.2 拆分零数取自指定整数
4.8 递归应用小结
习题
第5章 回溯法
5.1 回溯法概述
5.1.1 回溯的概念
5.1.2 回溯描述
5.2 桥本分数式
5.2.1 桥本分数式概述
5.2.2 10数字分数式
5.3 直尺与串珠
5.3.1 古尺神奇
5.3.2 数码串珠
5.4 逐位整除数探索
5.4.1 高逐位整除数
5.4.2 低逐位整除数
5.5 环序列
5.5.1 素数和环
5.5.2 德布鲁金环
5.6 装错信封问题
5.6.1 伯努利装错信封问题
5.6.2 特殊错位探索
5.7 别出心裁的情侣拍照
5.7.1 逐位安排与回溯
5.7.2 成对安排与回溯
5.8 回溯应用小结
习题
第6章 动态规划
6.1 动态规划概述
6.1.1 动态规划的概念
6.1.2 动态规划实施步骤
6.2 最长子序列探索
6.2.1 最长非降子序列
6.2.2 最长公共子序列
6.3 最优路径搜索
6.3.1 点数值三角形的最优路径
6.3.2 边数值矩形的最优路径
6.4 装载问题
6.5 0-1背包问题
6.5.1 一般0-1背包问题
6.5.2 二维约束0-1背包问题
6.6 插入乘号问题
6.6.1 动态规划求解
6.6.2 基于组合枚举求解
6.7 动态规划应用小结
习题
第7章 贪心算法
7.1 贪心算法概述
7.2 删数字问题
7.3 埃及分数式
7.3.1 选择最小分母构建
7.3.2 贪心选择范围的扩展
7.4 可拆背包问题
7.5 数列操作与极差
7.5.1 数列操作
7.5.2 数列操作优化
7.5.3 数列极差
7.6 哈夫曼树及其应用
7.6.1 哈夫曼树
7.6.2 哈夫曼编码
7.7 贪心算法应用小结
习题
第8章 模拟
8.1 竖式乘除模拟
8.1.1 竖式除模拟
8.1.2 竖式乘模拟
8.2 乘数探求
8.2.1 积为若干个1构成
8.2.2 积为若干个2011构成
8.2.3 积的任意指定构成
8.3 尾数前移问题
8.3.1 限1位尾数前移
8.3.2 多位尾数前移
8.4 阶乘幂与排列组合数的计算
8.5 圆周率π的高精度计算
8.6 蒙特卡罗模拟计算
8.7 模拟发桥牌
8.8 泊松分酒
8.9 模拟应用小结
习题
第9章 算法的综合应用
9.1 最大子段和问题
9.1.1 序列的最大子段和
9.1.2 环序列的最大子段和
9.2 高斯皇后问题
9.2.1 高斯八皇后问题
9.2.2 n皇后问题
9.2.3 皇后全控棋盘问题
9.3 马步遍历与哈密顿圈
9.3.1 马步遍历
9.3.2 马步型哈密顿圈
9.3.3 组合型哈密顿圈
9.4 算法的综合应用小结
习题
附录
附录a 部分习题求解提要
附录b 在vc++6.0环境下运行c程序方法简介
附录c c常用库函数
参考文献

章节摘录

版权页:插图:从以上两个例中可见,在求解案例时,需根据问题的具体实际设置数据结构,确定求解算法,编程实现算法。要提高程序的质量,提高编程效率,主要是使设计的算法具有良好的可读性、可靠性、可维护性以及良好的结构。设计好的算法,编制好的程序,应当是每位程序设计工作者追求的目标。而要做到这一点,就必须掌握正确的程序设计方法与技术。实际上,算法设计与程序设计是相关联的一个整体。为了防止在算法教学中算法设计与程序设计脱节,算法理论与实际应用脱节,本教程在讲述每一种常用算法时,把算法设计与程序设计紧密结合起来,突出算法在解决实际案例中的核心地位与指导作用,努力提高对相应算法的理解,切实提高我们应用算法设计解决实际问题的能力。1.3.2 结构化程序设计近年来,一些面向对象的计算机程序设计语言陆续问世,打破了以往只有面向过程程序设计的单一局面。如果认为有了面向对象的程序设计之后,面向过程的程序设计就过时了,这是不正确的。不应该把面向对象与面向过程对立起来,在面向对象程序设计中仍然要用到面向过程的知识。面向过程程序设计仍然是程序设计工作者的基本功。而面向过程程序设计通常由结构化程序设计实现。算法是由一系列操作组成的,这些操作之间的执行次序就是控制结构。计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,顺序结构、选择结构和循环结构被称为程序设计的三种基本构,也是结构化程序设计必须采用的结构。结构化程序设计方法是目前国内外普遍采用的一种程序设计方法。自20世纪60年代由荷兰学者E.w.Dijkstra提出后,结构化程序设计方法在实践中不断发展和完善,已成为软件开发的重要方法,在程序设计中占有十分重要的位置。结构化程序设计是一种进行程序设计的原则和方法,按照这种原则和方法可设计出结构清晰、容易理解、容易修改、容易验证的程序。或者说,结构化程序设计是按照一定的原则与原理,组织和编写正确且易读的程序的软件技术。结构化程序设计的目标在于使程序具有一个合理结构,以保证程序的正确性,从而开发出正确、合理的程序。结构化程序设计的基本要点为:(1)自顶向下,逐步求精。(2)模块化设计。(3)结构化编码。自顶向下是指对设计求解的问题要有一个全面的理解,从问题的全局入手,把一个复杂问题分解成若干个相互独立的子问题,然后对每个子问题再作进一步的分解,如此重复,直到每个子问题都解决为止。

编辑推荐

《计算机常用算法与程序设计案例教程》:首创“案例”形式实现算法与程序设计教学。通过典型案例来引导算法设计的逐步深入,来展开程序设计的求解实施,实现以典型案例支撑算法,以算法设计指导案例求解的良性循环。注重常用算法的选取与组织。在常用算法的选取上克服贪多求全、贪广求深,去除一些难度大、理论深、应用少的带学术研究性质的算法内容,结合本科教学实际与应用需求,选取枚举、递推、递归、回溯、动态规划、贪心算法与模拟等常用算法。注重典型案例的精选与提炼。针对选取的每一种常用算法,精选典型的实际案例,包括典型的数值求解,常见的数据处理,有趣的智力测试,巧妙的模拟探索,既有引导入门的基础案例,也有难度较大的综合案例,既有新创趣题,也有经典名题,难度适宜,深入浅出。注重算法设计与程序实现的紧密结合。在讲述每一种常用算法的基本思路与设计步骤的基础上,落实到每一个案例求解,从案例的提出到算法设计与描述、从程序实现到案例结果的讨论与分析,环环相扣,融为一体,力求理论与实际相结合、算法与程序相统一,突出算法在解决实际案例中的核心地位与引导作用,切实提高对所学算法的理解和掌握。注重算法改进与程序优化。教程对一些典型案例应用多种不同的算法设计,编写不同表现形式与不同设计风格的程序,体现了算法与程序设计的灵活性和多样性。

图书封面

图书标签Tags

评论、评分、阅读与下载


    计算机常用算法与程序设计案例教程 PDF格式下载


用户评论 (总计11条)

 
 

  •   本书编得很不错,里面还有案例等让人更容易理解,不错,好评。
  •   适用于计算机爱好者
  •   没看到书,给妹妹买的,直接寄到学校去了,速度那是相当快啊,晚上下的单第二天就到了,妹妹还想着周一上课要用,结果周六就到了,书不错,跟她们教师说的是同一版本,以后教材就在这买了
  •   如果十二个
  •   湖南理工的老师能写出这样的书 可喜可贺
  •   内容详细。思路方法很好,很全面
  •   一些常用的算法,算法入门必备
  •   主要是代码不够规范,显得很乱。
  •   还不错哦 ,个人觉得!!
  •   不错的书籍,很多基础算法,不过缺少数据结构方面的内容,而且相对与竞赛来说偏简单了些
  •   比较实用,易懂,比一般的只有算法的罗列要强,更有系统。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7