新書推薦:
《
汉匈战争全史
》
售價:NT$
454.0
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
不止江湖
》
售價:NT$
449.0
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:NT$
704.0
《
双城史
》
售價:NT$
505.0
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:NT$
254.0
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:NT$
230.0
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:NT$
403.0
|
內容簡介: |
本书遵循“精选案例,面向设计,深入浅出,注重能力培养”的要求,以案例形式实现算法与程序设计教学,精选了穷举法、递推法、回溯法、分支限界法、递归法、分治法、贪心算法、动态规划法和随机算法等常用算法进行讲解,并给出了使用各算法求解的典型案例。对于每一个案例的求解,从问题提出到算法设计、从程序实现到算法复杂度分析,环环相扣,融为一体,力求理论与实际相结合、算法与程序相统一,突出算法在解决实际问题中的核心地位与引导作用。本书中的所有案例均给出算法设计要点与完整的C语言或者C++语言程序代码(均在VC++ 6.0上编译通过)。为方便教学,每章都附有习题,同时提供教学课件、习题答案、源代码等配套资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载使用。本书既可作为高等院校计算机专业相关课程的教材,也可供IT从业人员和计算机编程爱好者参考使用。
|
關於作者: |
杨建英,硕士毕业于华南师范大学人工智能与模糊识别专业,目前在山西大学软件学院任教。山西CCF大会分会委员,山西大学计算机协会指导教师,山西大学软件应用协会指导教师,山西大学ACM-ICPC算法队指导老师,山西大学精英之英竞赛与科技创新团队指导老师。 参与多个国家自然科学基金青年基金项目,荣获山西省科技进步三等奖,“数据库原理与应用”获得山西省精品资源共享课程,出版《Vue.js企业开发实战》《Python快乐编程数据分析与实战》《C语言教程与等级考试》等多部图书。
|
目錄:
|
第1章 算法与程序设计简介11.1 初识算法11.1.1 算法的基本概念21.1.2 算法的描述41.1.3 算法设计的步骤71.1.4 算法的分类81.2 算法复杂度分析91.2.1 时间复杂度91.2.2 空间复杂度141.2.3 算法设计实例151.3 程序设计简介171.3.1 算法与程序181.3.2 结构化程序设计191.3.3 结构化程序设计实例20习题21第2章 穷举法232.1 穷举法概述232.1.1 穷举法的基本思想232.1.2 穷举法的实施步骤与算法描述232.2 整数搜索252.2.1 算24点游戏252.2.2 韩信点兵272.2.3 素数问题282.2.4 约瑟夫环问题292.2.5 火柴棒等式302.2.6 三色旗问题312.2.7 勾股数问题322.2.8 猜价格游戏332.3 分解与重组352.3.1 水仙花数352.3.2 回文数352.3.3 完数362.4 趣味数学372.4.1 百钱买百鸡问题372.4.2 搬砖问题382.4.3 鸡兔同笼问题382.4.4 数学灯谜392.5 解方程与不等式402.5.1 解二元一次方程402.5.2 解完美立方式402.5.3 解一元二次不等式412.6 数阵与图形422.6.1 杨辉三角形422.6.2 输出各种图形432.7 穷举设计的优化45习题47第3章 递推法483.1 递推法概述483.1.1 递推法的基本思想483.1.2 递推法的实施步骤与算法描述493.2 递推数列513.2.1 斐波那契数列和卢卡斯数列513.2.2 分数数列533.2.3 幂序列533.2.4 双关系递推数列543.2.5 储油点问题563.3 递推数阵573.3.1 累加和573.3.2 阶乘问题583.3.3 九九乘法表583.4 递推的其他应用593.4.1 猴子爬山问题593.4.2 整币兑零问题603.4.3 整数划分问题613.4.4 汉诺塔问题613.4.5 体重指数BMI623.4.6 求π的近似值633.4.7 求一元二次方程的根633.4.8 求三角形的面积643.4.9 存钱问题653.4.10 求最大公约数和最小公倍数66习题67第4章 回溯法684.1 回溯法概述684.1.1 回溯法的基本思想684.1.2 回溯法的实施步骤和算法描述694.2 回溯法的应用704.2.1 八皇后问题704.2.2 图的着色问题714.2.3 装载问题734.2.4 批处理作业调度754.2.5 符号三角形问题774.2.6 最大团问题784.2.7 旅行售货员问题804.2.8 电路板排列问题824.2.9 连续邮资问题844.2.10 圆排列问题864.2.11 桥本分数式884.2.12 素数环894.2.13 神奇古尺914.3 回溯设计的优化92习题93第5章 分支限界法945.1 分支限界法概述945.1.1 分支限界法的基本思想945.1.2 分支限界法的实施步骤和算法描述945.2 分支限界法的应用955.2.1 迷宫问题955.2.2 六数码问题985.2.3 旅行商问题1015.2.4 背包问题1045.3 回溯法与分支限界法的比较108习题109第6章 递归法1106.1 递归法概述1106.1.1 递归法的基本思想1106.1.2 递归法的实施步骤和算法描述1106.2 递归法的应用1116.2.1 整数划分问题1116.2.2 汉诺塔问题1126.2.3 枚举排列问题1136.2.4 用递归法求斐波那契数列1146.2.5 排队买票问题1156.2.6 猴子吃桃子问题1166.2.7 RPG涂色问题1176.2.8 二叉树的遍历1186.3 回溯法与递归法的比较120习题120第7章 分治法1217.1 分治法概述1217.1.1 分治法的基本思想1217.1.2 分治法的实施步骤和算法描述1227.2 分治法的应用1237.2.1 二分查找法1237.2.2 大整数乘法1257.2.3 斯特拉森矩阵乘法1277.2.4 棋盘覆盖问题1287.2.5 合并排序1297.2.6 快速排序1327.2.7 线性时间选择1337.2.8 最近点对问题1367.2.9 循环赛日程表1377.3 递归转化1397.3.1 一般的递归转非递归1397.3.2 分治法中的递归转化141习题143第8章 贪心算法1458.1 贪心算法概述1458.1.1 贪心算法的基本思想1458.1.2 贪心算法的实施步骤与算法描述1458.2 活动安排问题1468.3 田忌赛马1488.4 背包问题1498.5 覆盖问题1518.5.1 区间覆盖问题1518.5.2 最大不相交覆盖1518.5.3 点覆盖1518.6 教室调度问题1538.7 最小生成树——Kruskal算法1558.8 最小生成树——Prim算法1578.9 哈夫曼编码1608.10 教室分配问题1648.11 最短路径——弗洛伊德算法1668.12 最短路径——迪杰斯德拉算法1698.13 均分纸牌1728.14 最佳浏览路线问题1738.15 机器调度问题1758.16 钱币找零问题176习题177第9章 动态规划法1789.1 动态规划法概述1789.1.1 动态规划法的基本思想1789.1.2 动态规划法的实施步骤与算法描述1799.2 装载问题1809.3 投资分配问题1819.4 背包问题1859.4.1 0-1背包问题1859.4.2 二维0-1背包问题1879.5 最长子序列探索1889.5.1 最长非降子序列1889.5.2 最长公共子序列(Longest Common Subsequence,LCS)1909.6 最优路径搜索1929.6.1 数字三角形最大路径和1929.6.2 多源最短路径问题1949.6.3 走方格问题1979.6.4 邮资问题1989.7 动态规划与其他算法的比较199习题200第10章 随机算法20110.1 随机算法概述20110.2 随机数20110.2.1 随机生成数组元素20210.2.2 随机生成数字20410.2.3 随机生成计算题20610.3 同余算法20810.4 舍伍德算法20910.5 蒙特卡罗算法21110.5.1 用蒙特卡罗算法求π的值21110.5.2 用蒙特卡罗算法求特殊图形的面积21210.5.3 蒙特卡罗算法的优缺点及改进措施21310.6 拉斯维加斯算法21410.7 蒙特卡罗算法和拉斯维加斯算法的比较21710.8 随机算法的优缺点217习题217附录A 不同算法的比较219参考文献221
|
|