新書推薦:
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:NT$
203.0
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:NT$
611.0
《
养育女孩 : 官方升级版
》
售價:NT$
230.0
《
跨界:蒂利希思想研究
》
售價:NT$
500.0
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:NT$
203.0
《
大模型启示录
》
售價:NT$
510.0
|
編輯推薦: |
本书全面介绍算法评价与常用算法设计方法,本书配套资源丰富,包括教学大纲、教学课件、电子教案、程序源码、习题答案、600分钟的微课视频和25个思政案例。
|
內容簡介: |
本书全面介绍算法评价与常用算法设计方法。算法评价部分主要从理论和实践两个角度就算法评价方法展开讨论,从中可以学习到算法分析方法和各种有效的测试方法,有助于更有效地评价和设计算法; 算法设计部分主要针对每种算法设计策略,通过引例引入算法,阐述算法思想、步骤、原理,再结合典型应用的描述与分析、算法设计、代码实现、实例演示、算法分析、改进、扩展等内容,对算法进行全面描述,有助于在典型应用的详细解析中掌握并运用算法。
全书分为两篇,共10章。第一篇为算法评价,包括两章。第1章系统介绍从理论层面分析算法优劣的基本方法,包括算法的正确性、算法的简单性、算法的时空复杂度分析、算法的最优性证明、计算误差分析和NP完全理论; 第2章从实践层面分析算法优劣的可实施方法,包括程序的性能测试方法、程序的空间测试方法和误差测试方法。第二篇为算法设计,包括第3~9章的递归、分治、动态规划、贪心法、回溯法、分支限界法和概率算法。此外,第10章针对各类算法进行对比分析,并通过几个经典应用给出采用不同算法设计策略的求解方法。
本书可作为高等院校计算机相关专业教材,同时可供对算法设计与分析有所了解的广大开发人员、科技工作者和研究人员参考。
|
目錄:
|
扫一扫
源码下载
第一篇算 法 评 价
第1章从理论看算法
1.1正确性
1.2简单性
1.3时间复杂度分析
1.3.1非递归算法的分析方法
1.3.2递归算法的分析方法
1.4空间复杂度分析
1.5最优性证明
1.6计算误差分析
1.6.1误差分析基础
1.6.2误差分析方法
1.7NP完全理论
1.7.1计算模型
1.7.2P问题、NP问题和NPC问题
1.7.3常见典型问题
1.8小结
扩展阅读
习题1
第2章从实践看算法
2.1性能测试方法
2.1.1从零做测试
2.1.2工具介绍
2.2空间测试方法
2.2.1Windows系统
2.2.2Linux系统
2.3误差测试方法
2.3.1计算ULP
2.3.2从零做测试
2.4小结
扩展阅读
习题2
第二篇算 法 设 计
第3章递归
3.1引例: 阶乘
3.2递归的基本思想
3.3递归应用: 汉诺塔问题
3.4递归应用: 全排列
3.5递归应用: 整数划分
3.6小结
扩展阅读
习题3
第4章分治法
4.1引例: 寻找假币
4.2分治法基本思想
4.2.1分治法解题步骤
4.2.2分治法适用条件
4.2.3分治法代码框架
4.3分治法应用: 二分搜索
4.4分治法应用: 快速排序
4.5分治法应用: 归并排序
4.6分治法应用: 求最大最小项
4.7分治法应用: 棋盘覆盖
4.8分治法应用: 大整数乘法
4.8.1位乘法实现
4.8.2分治法实现
4.9小结
扩展阅读
习题4
第5章动态规划
5.1引例一: 兔子繁殖问题
5.2引例二: 数字三角形问题
5.3动态规划基本思想
5.3.1动态规划与分治法的区别
5.3.2适合用动态规划求解的问题具有的两个重要性质
5.3.3动态规划的解题步骤
5.4动态规划应用: 01背包问题
5.4.1动态规划求解01背包问题
5.4.2算法空间优化
5.5动态规划应用: 矩阵连乘问题
5.6动态规划应用: 最长公共子序列
5.7动态规划应用: 最长不上升子序列
5.8动态规划应用: 编辑距离问题
5.9动态规划应用: 最优二叉搜索树
5.10小结
扩展阅读
习题5
第6章贪心法
6.1引例: 找零钱问题
6.2贪心法的基本思想
6.3贪心法应用: 活动安排问题
6.4贪心法应用: 过河问题
6.5贪心法应用: 哈夫曼编码
6.6贪心法应用: 最小生成树
6.7贪心法应用: 多机调度问题
6.8小结
扩展阅读
习题6
第7章回溯法
7.1引例一: 01背包问题
7.2引例二: 旅行售货员问题
7.3回溯法基本思想
7.3.1解题步骤
7.3.2算法框架
7.4回溯法应用: 01背包问题
7.5回溯法应用: 旅行售货员问题
7.6回溯法应用: 符号三角形问题
7.7回溯法应用: n皇后问题
7.8小结
扩展阅读
习题7
第8章分支限界法
8.1引例: 01背包问题
8.2分支限界法基本思想
8.3分支限界法应用: 01背包问题
8.4分支限界法应用: 旅行售货员问题
8.5小结
扩展阅读
习题8
第9章概率算法
9.1引例: 主元素求解
9.2概率算法的分类
9.3随机数生成
9.4舍伍德算法
9.5拉斯维加斯算法
9.6蒙特卡洛算法
9.7小结
扩展阅读
习题9
第10章综合应用
10.1算法设计策略的对比
10.1.1递归与分治法
10.1.2动态规划与分治法
10.1.3动态规划与贪心法
10.1.4回溯法与分支限界法
10.2最大子段和问题
10.3最短路径问题
10.3.1单源最短路径
10.3.2所有点对间的最短路径
10.4资源分配问题
10.5小结
扩展阅读
习题10
参考文献
|
內容試閱:
|
党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。
算法设计与分析在计算机领域中的重要性不言而喻,虽说有新的算法被不断提出,但掌握常用的算法设计策略与算法分析方法依然是算法学习的主要内容和基本功。本书较全面、深入地介绍了常用算法设计策略和算法分析方法,涵盖的内容作为程序高效求解问题的知识,能够满足高等院校计算机相关专业学习算法设计与分析的教学需求和学习需求。
全书围绕算法评价和算法设计展开,分为两篇,共10章。
第一篇主要介绍算法评价的内容和方法,包括两章。第1章系统介绍从理论层面分析算法优劣的基本方法,包括算法的正确性、算法的简单性、算法的时空复杂度分析、算法的最优性证明、计算误差分析和NP完全理论; 第2章介绍从实践层面分析算法优劣的可实施方法,包括程序的性能测试方法、程序的空间测试方法和误差测试方法。
第二篇主要介绍常用的算法设计策略,包括第3~9章,具体内容为递归、分治、动态规划、贪心法、回溯法、分支限界法和概率算法。算法设计策略从原理思想上不难理解,但如何做到活学活用是算法学习的重点和难点。因此,在算法设计策略的内容组织方面,通过引例引入算法,阐述算法思想、步骤和原理,再结合若干典型应用的问题分析、算法设计、实例演示、代码实现、算法分析、算法改进、应用扩展等内容,对算法进行全面描述,力求做到分析深入、讲解清楚、代码完整。此外,第10章针对各类算法进行了对比分析,并通过几个经典应用给出了采用不同算法设计策略的求解方法,希望借此抛砖引玉,引导读者运用所学的算法知识,从不同角度尝试多种方法分析和求解问题,从而进一步加深对不同算法设计策略的理解和运用。
实践练习是算法学习的重要一环,本书的每章设计并精选了练习题,引导读者深入思考,做针对性练习,在实践中不断提升对知识的理解,提高求解问题的能力。其中,部分练习题来自国内知名在线编程平台,如poj、洛谷等,对全面考虑问题、设计时空复杂度低的算法有更高的要求。
本书的特点是突出算法评价和算法设计两个重点,从理论和实践相结合的角度阐述,力图把原理方法讲透,把求解过程讲到位。在内容组织上,贯穿所见即所得的理念,强化典型应用算法设计过程和实际程序执行过程的描述,同时通过程序执行步骤的可视化,充分展示代码执行过程中的状态变化,有利于读者在阅读的同时建立程序执行的影像,实现“纸上谈兵”。
此外,对于算法学习者,在厘清算法基本原理的同时,也有必要了解算法的起源和应用场景。所以,本书在每章的最后增加了扩展阅读内容,梳理了部分算法的起源、发展、应用场景或算法提出者的简单生平。同时,算法在学习和生活中无处不在,蕴含在算法中的人生哲理对于学习者更是受益匪浅。因此,针对不同章节的主要内容,从算法的思想出发引出了生活中的处世之道和人生智慧。
为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、习题及答案和600分钟的微课视频。
资源下载提示
课件等资源: 扫描封底的“图书资源”二维码,在公众号“书圈”下载。
素材(源码)等资源: 扫描目录上方的二维码下载。
微课视频: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的视频讲解二维码,可以在线学习。
本书第1章的主要内容由周蓓和许瑾晨共同编写,第2~4章及第7~9章的主要内容由许瑾晨编写,第5、6章及第10章的主要内容由周蓓编写,书中代码由周蓓、许瑾晨、本科生赵贝宁完成且由弋宗江老师审核,扩展阅读部分由周蓓、许瑾晨、弋宗江、硕士生李飞完成材料收集和编写。周蓓、许瑾晨、弋宗江、郝江伟、朱雨、李飞、硕士生宋广辉等对全书内容进行了校对。
借此机会,感谢从事算法设计与分析教学的老师,包括舒辉教授、杜祝平副教授、岳峰博士、陶红伟博士等,以及所有为课程建设作出贡献的老师和同学们,因为有他们的付出,才给了我们深厚的课程积淀,让我们有机会完成本书的撰写和出版。
感谢郭绍忠教授、王炜副教授的支持和有益的建议!
本书初稿内容在多届本科生中讲授,他们在学习过程中提出了若干宝贵的建议,在此一并表示感谢!
感谢在互联网上共享算法相关内容的人们,以及各类代码编程网站和平台,这都为本书的组织和撰写提供了有益的思路和一定的借鉴!
感谢我们的家人们,感谢他们的大力支持!
感谢教研室的各位领导、老师和硕博士们给予的帮助!
感谢所有以各种形式支持和帮助过我们的人!
本书内容力求全面概括计算机相关专业对于算法方面所要求的相关知识,然而,由于编者水平所限,难免有所遗漏,敬请读者批评指正。
编者
2024年7月
|
|