





定价:49元
印次:1-1
ISBN:9787302644491
出版日期:2023.12.01
印刷日期:2023.12.27
图书责编:刘星
图书分类:教材
本课程系统地介绍了算法分析与算法设计的概念、方法和应用。课程共分12章,涵盖的内容包括数据结构、串与序列、动态规划、贪心算法、图算法、概率算法、查找与排序算法等内容。课程采用工程问题导引、反向设计的方式组织教学内容,基于经典算法问题案例完成对算法基本理论、采用的基本数据结构、算法的性能等内容的学习与分析,并完成算法的实践,突出对学生知识应用能力和工程实践能力的培养。在课程每章的每小节提供练习题和思考题供课后复习,针对每章提供实验和案例,供课后实践和扩展提高,提供全套课程资源辅助教师教学和学生学习。本课程可以作为普通高等学校人工智能、计算机科学与技术、软件工程、电子信息工程、自动化等专业的本专科学生及研究生学习,也适合作为从事软件开发与设计的科研和工程技术人员参考。
梅红岩,北京邮电大学计算机科学与技术专业博士,副教授,硕士生导师,主要研究方向大数据分析与数据挖掘、网络服务;现任电子与信息工程学院数据科学与大数据技术专业负责人。主讲“操作系统”“数据结构”“移动应用案例分析”“人工智能”“数据科学与大数据技术导论”“Python应用与仿真”"数据挖掘技术及应用”等计算机专业的本科和研究生课程。参与多项教学改革,并分别获得2012年教学成果二等奖和2018年省教学成果二等奖,获2018年度校先进个人。主持辽宁省联合基金项目一项,主持完成横向项目3项,参与完成国家自然科学基金项目、省教育厅重点实验室项目、省自然科学基金项目3项,在国内外学术期刊和国际会议上共发表学术论文20篇,其中第一作者发表SCI、软件学报、EI检索、核心论文10余篇。
前言 本书从解决问题的角度出发,系统地介绍了算法分析与算法设计的概念、方法和应用,涵盖的内容包括数据结构、串与序列、动态规划、贪心算法、图算法、概率算法、查找与排序算法等内容。在介绍算法的基础上,本书还分析了算法的基本理论、经典的算法问题和算法实践。本书采用Python作为算法分析与设计的描述与实现语言,共10章。第1章介绍了算法的基本概念以及怎样设计、描述和评价一个算法等相关内容。第2章介绍了数据结构的基础知识,包括线性表、队列、栈、树和二叉树及图等数据结构的基本原理、基本操作及其应用举例,为算法设计奠定基础。第3~8章分别从解决问题的角度出发,对算法的设计与分析内容进行了围绕问题的分类介绍: 第3章排序问题,着重讲述各类排序算法并进行了比较分析; 第4章查找问题,重点介绍了线性表、树、散列表的查找问题; 第5章图的问题,重点讲解了如何采用图结构进行相关问题的求解,并给出最小生成树、关键路径和最短路径等问题的应用举例; 第6章串与序列问题,主要介绍了子串搜索问题和最长公共子串搜索问题的相关算法并给出应用举例; 第7章组合问题,重点讲解动态规划算法、贪心算法、最优装载问题和多机调度问题的求解及其应用举例; 第8章概率问题,主要讲解了数值概率问题、舍伍德算法、拉斯维加斯算法和蒙特卡罗算法内容及应用举例。第9章和第10章主要从经典问题解决和游戏中的算法实现两方面进行内容介绍,重点在于算法的应用与代码实践: 第9章给出了鸡兔同笼问题、汉诺塔问题、三色球问题和野人与传教士问题等经典问题的原理和算法实现; 第10章游戏与算法实践,给出了酷跑游戏、连连看游戏、五子棋游戏...
目录
第1章算法概述
1.1什么是算法
1.1.1算法概念
1.1.2算法特性
1.1.3算法在问题求解中的地位
1.2如何设计一个算法
1.3怎样描述一个算法
1.3.1自然语言描述法
1.3.2流程图描述法
1.3.3NS图描述法
1.3.4伪代码描述法
1.3.5程序设计语言描述法
1.4怎样评价一个算法
1.4.1算法复杂度分析与评价概述
1.4.2算法复杂度分析与评价的形式化表示
1.4.3算法的时间复杂度
1.4.4算法的空间复杂度
1.5常用算法设计模式
1.6搭建实践环境
1.6.1Anaconda介绍
1.6.2Anaconda安装
1.6.3Jupyter Notebook的使用
1.7作业与思考题
第2章数据结构基础
2.1线性结构
2.1.1什么是线性表
2.1.2怎么存储一个线性表
2.1.3线性表的基本操作
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.4.3二叉树的存储结构
2.4.4二叉树的基本操作
2.4.5树的应用案例
2.5图
2.5.1什么是图
2.5.2图的存储结构
2.5.3图的基本操作
2.5... 查看详情
(2) 突出实用性。注重理论联系实际,以培养学生应用能力为主要目标。针对问题结合算法给出应用案例,有助于学生对知识的理解、掌握并提升应用能力。
(3) 代码详解。结合典型算法,每章均给出了详细的Python代码实现。"