新書推薦:
《
潜能觉醒
》
售價:HK$
86.9
《
初平:汉末群雄混战(190—195)
》
售價:HK$
53.9
《
建安:官渡大决战(196—200)
》
售價:HK$
53.9
《
权力的图像——近代的中国海图与交流
》
售價:HK$
184.8
《
中亚民族史
》
售價:HK$
184.8
《
人工智能与智能制造:概念与方法 [美]马苏德·索鲁什 [美]理查德·D.布拉茨
》
售價:HK$
140.8
《
中平:东汉王朝大崩溃(184—189)
》
售價:HK$
53.9
《
基于鲲鹏的分布式图分析算法实战
》
售價:HK$
108.9
|
編輯推薦: |
本书是东南大学信息科学与工程学院与苏州第十中学联手打造的一本适合中学生学习人工智能算法的入门教材,采用双色印刷,装帧精美,易于阅读。本书引入了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及的一些经典算法逐行分析、多算法比较。本书有趣易读,算法讲解细致深刻,是一本非常适合算法入门的读物。
|
內容簡介: |
在人工智能时代下,本书将带领读者通过学习一些简单的计算机数据结构和相关算法,来提高使用编程语言的能力,从而探索更加广阔的编程世界。本书主要介绍了线性表、栈与队列、递归、搜索和排序、树、图等常用的数据结构和算法的概念和*基本的应用。本书引入了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及的一些经典算法逐行分析、多算法比较。本书有趣易读,算法讲解细致深刻,是一本非常适合算法入门的读物。
本书可作为青少年的自学参考书,也可作为中学生学习人工智能所应用的算法的参考教材。
|
關於作者: |
徐卫,中学高级教师,苏州大市学科带头人。现任江苏省苏州第十中学校信息技术学科教师、信息中心主任、安教处主任、教务处副主任。其教科研成果获得苏州市教育教学成果一等奖。执教公开课30多节,发表论文10多篇,编写教材3部,主持或参与国家、省、市级课题4项。教学理念:培养学生的创新精神、创新意识和创新思维习惯,鼓励合作与竞争,倡导个性化的学习方式。
庄浩,中学高级教师,苏州市教育工作者、苏州市教育局“共产党员”、苏州市直属学校德育工作者、苏州市区“指导学生自学先进教师”、江苏省化学奥林匹克高级教练员。近年来,有多篇论文在省市级期刊发表或获奖,在江苏省基础教育青年教师教学基本功大赛(高中化学)中获得省一等奖、苏州市教师把握学科能力竞赛中获大市一等奖、苏州市高中化学教师评优课比赛中获得大市一等奖。曾任校督导室主任,并多年担任学校教务处主任和年级部主任等职务,积累了丰富的教育教学管理经验,现任江苏省苏州第十中学校副校长。
|
目錄:
|
目录
前 言
第1章 初探数据结构1
1.1?数据结构起源1
1.2?数据结构相关基本概念和专业术语1
1.2.1?数据1
1.2.2 数据元素2
1.2.3 数据项2
1.2.4 数据对象2
1.2.5 数据结构3
1.3 逻辑结构与物理结构3
1.3.1 逻辑结构3
1.3.2 物理结构5
1.4 参考题6
第2章 算法7
2.1 数据结构与算法的关系7
2.2 两种算法的比较7
2.3 算法的定义8
2.4 算法的特性9
2.4.1 输入输出9
2.4.2 有穷性9
2.4.3 确定性9
2.4.4 可行性9
2.5 算法设计的要求10
2.5.1 正确性10
2.5.2 可读性10
2.5.3 健壮性11
2.5.4 时间效率和存储量11
2.6 算法效率的度量方法11
2.6.1 事后统计方法11
2.6.2 事前分析估算方法12
2.7 参考题13
第3章 线性表14
3.1 线性表的定义14
3.2 线性表的顺序存储结构15
3.2.1 两种存储结构15
3.2.2 顺序存储结构的地址计算方法16
3.3 线性表的链式存储结构16
3.3.1 顺序存储结构的不足的解决办法16
3.3.2 线性表链式存储结构定义17
3.4 单链表结构与顺序存储结构的优缺点19
3.5 列表20
3.5.1 无序列表抽象数据类型20
3.5.2 实现无序列表:链表21
3.5.3 实现有序列表31
3.6 参考题34
第4章?栈与队列35
4.1 栈的定义35
4.2 栈的抽象数据类型36
4.3 用Python实现栈37
4.4 队列的定义39
4.5 队列的抽象数据类型40
4.6 用Python实现队列41
4.7 双端队列的定义42
4.8 双端队列的抽象数据类型43
4.9 用Python实现双端队列44
4.10 参考题45
第5章 递归46
5.1 引言46
5.2 何谓递归46
5.2.1 计算一列数之和46
5.2.2?递归三原则49
5.2.3?将整数转换成任意进制的字符串49
5.3?栈帧:实现递归51
5.4 递归可视化53
5.5 复杂的递归问题59
5.6 探索迷宫62
5.7 动态规划68
5.8 参考题75
第6章 搜索和排序76
6.1 引言76
6.2 搜索76
6.2.1?顺序搜索76
6.2.2 二分搜索79
6.2.3 散列81
6.3 排序92
6.3.1 冒泡排序92
6.3.2 选择排序96
6.3.3 插入排序97
6.3.4 希尔排序99
6.3.5 归并排序102
6.3.6 快速排序106
6.4 参考题109
第7章 树110
7.1 引言110
7.2 树的定义113
7.3 树的实现114
7.3.1 第Ⅰ种实现方法——列表法115
7.3.2 第Ⅱ种实现方法——节点法118
7.4 二叉树的应用121
7.4.1 解析树121
7.4.2 树的遍历127
7.5 参考题131
第8章 图132
8.1 引言132
8.2 定义132
8.3 图的抽象数据类型134
8.3.1 邻接矩阵134
8.3.2 邻接表135
8.3.3 实现136
8.4 参考题140
附录141
参考答案141
|
內容試閱:
|
近年来,随着社会关注度的提升和神经网络关键算法的不断突破,人工智能领域的发展取得了长足的进步,各种AI产品的出现极大地丰富了人们的生活。与此同时,培养青少年对人工智能学科的兴趣、促进青少年对人工智能学科的学习也得到了教育界的认可。对于初学者而言,想要理解、掌握人工智能技术,良好的编程和算法基础是不可或缺的。“九层之台起于垒土”,只有打好基础,才能在以后的学习中如鱼得水。
那什么是算法呢?就让我们一起来揭开它神秘的面纱吧!
设计计算机最开始的目的,是为了解决一些复杂、工作量大的数值计算问题,计算机在最初是一个数值计算工具。而随着计算机的计算能力一步步提升,如今的计算机已经可以完成除了简单的数值计算外的很多复杂问题。在计算机解决问题时,应该先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。就像解决数学应用题一样,首先要将现实问题转化为对应的数学问题,再采用相应的数学方法,来解决问题。而问题的转化和数学方法的设计,就涉及了数据结构和算法的概念。数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的被清楚指定的简单指令的集合。通过采用合理的数据结构和算法编写程序,就可以使计算机解决好一个实际问题。随着近年来面向对象编程思想的广泛应用,现今的编程工作对所采用的数据结构与算法的简洁性、高效性、安全性更加看重,如果说编程语言是剑客手上的剑,那数据结构和算法就是与之配套的剑法。不会剑法,有再好的剑,也发挥不出多少威力。
数据结构是计算机科学与技术专业、计算机信息管理与应用专业、电子信息等专业的基础课程,也是核心课程。所有的计算机系统软件和应用软件在开发过程中都要用到各种类型的数据结构。因此,要想运用计算机来解决实际问题,仅掌握计算机程序设计语言是难以应付复杂的课题的,要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。夯实“数据结构”这门课程的基础,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、软件工程、编译原理、人工智能、图视学等都是十分有益的。
本书介绍了一些常用的、基础的数据结构和算法,引导读者理解计算机解决问题的方式,并使读者对计算机的工作原理有一个大体的认知,相信在学习了本书以后,读者可以使用计算机编程技术解决一些复杂的应用问题。
编 者
|
|