





定价:79元
印次:1-4
ISBN:9787302587255
出版日期:2021.11.01
印刷日期:2024.01.11
图书责编:闫红梅
图书分类:教材
本书内容包括经典的算法设计技术,主要介绍数据结构和标准模板库、递归与分治策略、动态规划、贪心算法、回溯算法、分支限界算法、图的搜索算法、图论、数论和组合数学问题。本书包括大量的问题实例,并在北京大学、浙江大学和杭州电子科技大学在线题库中精选原题,详细地分析解题的方法,深入浅出地讲解用到的算法,章后的上机练习题也选自在线题库中的典型题目,供读者练习,以巩固所学算法。本书内容基本上涵盖了目前大学生程序设计竞赛所要掌握的算法。 本书结构清晰、内容丰富,适合作为计算机科学与技术、软件工程以及相关学科算法课程的教材或参考书,特别适合有志于参加信息学竞赛和ACM大学生程序设计竞赛的读者学习和训练。
赵端阳,教授,1987年中国矿业大学硕士研究生毕业,留校工作两年,1989-1999,杭州市杭州船舶工业学校任教,1999年并入浙江工业大学。从1987年起,一直从事计算机专业课程的教学。2002.9~2003.7,到英国Plymouth大学网络研究组,作为高级访问学者从事网络安全的研究。作者在工作期间一直从事算法设计与分析的研究,从2005年起就一直指导学生参加大学生程序设计竞赛,并每年都获得浙江省大学生程序设计竞赛的银牌和铜牌,2017年度,获得ACM大学生程序设计竞赛青岛和南宁赛区的铜牌,和东亚赛区的铜牌。编写《算法分析与设计—以大学生程序设计竞赛为例》教程,清华大学出版社,2012年3月出版,2015年改版;编写《ACM大学生程序设计竞赛题解(1)》和《ACM大学生程序设计竞赛题解(2)》,电子工业出版社,2010年7月出版。从2007年起承担本科《算法分析与设计》课程的教学,本课程2013年评为浙江工业大学精品课程,2013年,获得浙江省课堂教学改革SPOC立项。2015年版《算法设计与分析—以ACM大学生程序设计竞赛在线题库为例》获得浙江省“十二五优秀教材”,浙江省“十三五”新形态教材立项。
前言 “算法设计与分析”是一门理论性与实践性结合很强的课程。在信息技术高速发展的今天,计算机技术已经应用到了很多科学领域。从理论上来说,算法研究已经被公认是计算机科学的基石。David Harel在其《算法学: 计算精髓》一书中写道: “算法不仅是计算机科学的一个分支,它更是计算机科学的核心。可以毫不夸张地说,它和绝大多数的科学、商业和技术都是相关的。” 在ACM国际大学生程序设计竞赛中,在线裁判系统是开展竞赛的核心,它是一个在线的程序与算法设计的练习和竞赛平台。系统可以提供大量的关于程序和算法设计的题目供学生练习或竞赛,学生可以使用自己熟悉的语言提交相关题目的程序代码,如果系统编译提交代码没有错误,则生成可执行文件。利用系统的测试用例来测试,如果输出结果正确,则返回程序消耗的内存空间和时间。对于竞赛题目,系统可以从程序正确性、运行总时间、消耗内存空间、返回结果等方面来考查学生提交的代码。系统可以实现在规定的时间段举行竞赛的功能,根据学生解题数目和时间进行排名,也可以批量导出学生代码,进行分析。 基于程序设计竞赛的教学模式的优势如下: (1) 提供一个开放的、自主学习的实验环境。在线评测系统通过网络使用,学生可以随时随地提交程序代码; 在丰富的算法设计题库中寻找适合自己的题目,训练程序设计能力。 (2) 有效地训练学生程序设计能力,培养创新型IT人才。本课程的学习难点在于如何将常见的算法策略应用到实际的应用环境中。通过在线评测系统的实践训练,让学生熟练掌握常见的算法设计策略,训练学生的创新思维,加深学生对各种算法设计策略的认识,理解算法的意义及精髓,达到...
目录
第1章算法概述
1.1引言
1.1.1算法的描述
1.1.2算法的设计
1.2算法的复杂度
1.2.1时间复杂度
1.2.2空间复杂度
1.3大学生程序设计竞赛概述
1.4程序设计在线测试题库
第2章数据结构和标准模板库
2.1栈
2.2向量
2.3映射
2.4列表
2.5集合
2.6队列
2.7优先队列
2.8ZOJ1004Anagrams by Stack
2.9ZOJ1094Matrix Chain Multiplication
2.10ZOJ1011NTA
2.11ZOJ1062Trees Made to Order
2.12ZOJ1097Code the Tree
2.13ZOJ1156Unscrambling Images
2.14ZOJ1167Trees on the Level
2.15ZOJ1016Parencodings
2.16ZOJ1944Tree Recovery
2.17ZOJ2104Let the Balloon Rise
上机练习题
第3章递归与分治策略
3.1递归算法
3.1.1Fibonacci数列
3.1.2集合的全排列问题
3.1.3整数划分问题
3.2分治策略
3.2.1分治策略的基本步骤
3.2.2分治策略的适用条件
3.2.3二分搜索算法
3.2.4循环赛日程表
3.2.5...
利用程序设计竞赛模式和在线评测系统的特点,将抽象的算法理论与程序设计竞赛试题相结合,给算法设计和分析课程带来了新的生机。