算法设计与分析实践案例解析
成为卓越算法工程师的必经之路,通过面试的通关法宝。

作者:杨烜、李炎然、吴定明

丛书名:面向数字化时代高等学校计算机系列教材

定价:49元

印次:1-1

ISBN:9787302698845

出版日期:2025.08.01

印刷日期:2025.08.27

图书责编:苏东方

图书分类:教材

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

"算法设计与分析是计算类专业的核心课程,学生在学习该课程时,普遍更容易理解理论,却常常无从下手解决一个实际问题。如何将理论知识应用到实践中解决实际问题?本书从计算思维培养的角度,将算法设计的思想利用通俗易懂的实例进行解释,提供大量实际问题、案例进行分析,希望学生能通过大量的实例分析建立一种有效的思维方式(计算思维),掌握求解问题的思路,进而提高解决实际问题的能力。 本书作为计算机专业的核心课程“算法设计与分析”的辅助教材,适用于计算机专业的高年级学生阅读,通过实践案例拓展眼界,提高实践能力。 "

杨烜,教授,博士生导师,深圳大学计算机与软件学院教学副院长,1991年毕业于西安电子科技大学,获学士学位,1994、1998年毕业西安交通大学获硕士、博士学位,1998年至2001年期间在西安电子科技大学博士后流动站工作,2001年至今在深圳大学工作。主持完成科技支撑计划项目课题一项,国家自然科学基金面上项目三项,作为参研单位主持人完成国家自然科学基金广东省联合基金一项,国家重点实验室项目一项,广东省自然科学基金一项,深圳市科技计划项目多项。获得总参科技进步二等奖一项,陕西省科学技术三等奖一项,陕西高等学校科学技术一等奖一项。深圳市优秀教师,获国家教学成果二等奖一项,广东省教学成果一等奖一项。

前言 虽然自己讲授“算法设计与分析”课程很多年了,但是一直没有想过写一本书。去年,应清华大学出版社邀约,萌生了写一本书的想法。为什么讲了这么多年课,直到现在才有写书的想法呢?一个主要原因就是我越来越强烈地感觉到:学生虽然能够理解课堂讲授的理论知识,但是在解决实际问题时,他们似乎难以下手。 为什么会有这种现象呢?我仔细思考之后,找到了一个关键的问题。“算法设计与分析”这门课程的理论是比较抽象的,虽然不难理解,但它就像天上的云一样,不容易落地。那么,如何能让理论知识落地,指引读者去解决实际问题呢?这就好像踢足球,如果只是听别人讲如何踢足球,一般人都能听懂,但是听懂了并不代表自己会了,如果要会踢足球,还需要大量的练习。 对于“算法设计与分析”这门课程而言,掌握理论知识之后也需要大量练习,那么怎样练习呢?就是在实际案例中去应用。但是在应用时需要注意,目标不能仅仅是解决某个问题,而要关注解决这个问题背后的思想方法。举一个简单的例子,假设我们要设计一个效率是O(logn)的算法求xn的值,其中x和n都是已知的。如果仅从解决问题的角度,可以利用n的二进制表达逐位处理,也可以达到O(logn)的效率。但是如果读者想要练习算法设计思想,就要分析这个问题的结构,也就是xn=xn/2×xn/2,从这个结构可以看出,原问题xn和子问题xn/2是一样的,仅仅是问题的规模有所区别,这样就出现了分治法求解的算法设计思路了,即原问题被分解为两个子问题。如果定义函数F(n)=xn,然后简单地利用F(n)=F(n/2)×F(n/2)的思路写代码,就会导致效率达到O(n),而不是O(logn),这个分...

目录
荐语
查看详情 查看详情
目录

配套资源

第1章算法和计算思维1

1.1算法基本概念及效率分析1

1.1.1什么是算法1

1.1.2算法设计的基本过程2

1.1.3算法效率分析的基本方法3

1.2算法与计算思维11

第2章分治法13

2.1分治法概述13

2.2分治法中的计算思维15

2.3分治法的实践案例16

2.3.1求第k个数16

2.3.2粉刷问题21

2.3.3棋盘覆盖问题24

2.3.4数组的反转计数27

2.3.5天际线问题32

2.3.6凸包问题36

第3章回溯法45

3.1回溯法概述45

3.2剪枝48

3.3回溯法与寻优问题49

3.4回溯法与分支界限法50

3.5回溯法中的计算思维51

3.6回溯法的实践案例52

3.6.1数独问题52

3.6.2骑士巡游问题55

3.6.3子集划分问题58

3.6.4括号生成问题61

3.6.5地图填色问题62

3.6.6运算表达式优先级66

第4章动态规划68

4.1动态规划概述68

4.2动态规划中的计算思维71

4.3动态规划的实践案例72

4.3.1最长等差子序列72

4.3.2子系列和最大问题74

4.3.3股票获益最大问题76

4.3.4图像编码问题80

4.3.5最长不重叠子串问题83

4.3.6粉刷问题85

4.3.7树的最大高度问题87

4.3.8分割等和子集问题92

4.3.9跳跃问题96

4.3.10最长严格递增子序列100

4.3.11回文串划分问题102

4.3.12括号生成问题110

4.3.13作业调度问题112

... 查看详情

本书提供大量实际问题、案例,有助于培养计算思维。


查看详情