计算思维与算法入门 - (EPUB全文下载)

文件大小:0.26 mb。
文件格式:epub 格式。
书籍内容:

计算思维与算法入门
第1章 程序设计与计算思维
1.1 认识计算思维
1.1.1 分解
1.1.2 模式识别
1.1.3 模式概括与抽象
1.1.4 算法
1.2 算法的条件
1.3 课后习题
第2章 常用数据结构与算法
2.1 认识数据结构
2.2 常见的数据结构
2.3 矩阵与深度学习
2.3.1 稀疏矩阵
2.3.2 矩阵相加算法
2.3.3 矩阵相乘算法
2.3.4 转置矩阵
2.4 链表
2.4.1 单向链表的串接算法
2.4.2 单向链表节点的删除算法
2.4.3 在单向链表中添加新节点
2.4.4 单向链表的反转
2.5 堆栈
2.6 队列
2.6.1 双向队列
2.6.2 优先队列
2.7 树结构
2.7.1 树的基本概念
2.7.2 二叉树
2.7.3 树转化为二叉树的算法
2.7.4 二叉树转化为树的算法
2.8 图简介
2.9 哈希表
2.10 课后习题
第3章 分治法
3.1 分治法简介
3.2 递归法
3.3 汉诺塔算法
3.4 快速排序法
3.5 合并排序法
3.6 二分查找法
3.7 课后习题
第4章 贪心法
4.1 贪心法简介
4.2 最小生成树
4.2.1 Prim算法
4.2.2 Kruskal算法
4.3 图的最短路径法
4.3.1 Dijkstra算法
4.3.2 A*算法
4.3.3 Floyd算法
4.4 课后习题
第5章 动态规划法
5.1 动态规划法简介
5.2 字符串对比功能
5.3 AOV网络与拓扑排序
5.4 AOE网络
5.5 青蛙跳台阶算法
5.6 课后习题
第6章 安全性算法
6.1 数据加密
6.1.1 对称密钥加密系统
6.1.2 非对称密钥加密系统与RSA算法
6.1.3 认证
6.1.4 数字签名
6.2 哈希算法
6.2.1 除留余数法
6.2.2 平方取中法
6.2.3 折叠法
6.2.4 数字分析法
6.3 碰撞与溢出处理
6.3.1 线性探测法
6.3.2 平方探测法
6.3.3 再哈希法
6.4 课后习题
第7章 树结构的算法
7.1 二叉树的遍历
7.2 二叉查找树
7.3 优化二叉查找树
7.3.1 扩充二叉树
7.3.2 哈夫曼树
7.4 平衡树(AVL树)
7.5 博弈树——八枚金币问题
7.6 堆积排序法
7.7 斐波那契查找法
7.8 课后习题
第8章 改变程序功力的经典算法
8.1 迭代法
8.1.1 帕斯卡三角算法
8.1.2 插入排序法
8.1.3 希尔排序法
8.1.4 基数排序法
8.2 枚举法
8.2.1 3个小球放入盒子
8.2.2 质数求解算法
8.2.3 顺序查找法
8.2.4 冒泡排序法
8.2.5 选择排序法
8.3 回溯法
8.3.1 老鼠走迷宫
8.3.2 八皇后算法
8.4 课后习题
第9章 游戏设计中的算法
9.1 游戏中的数学与物理算法
9.1.1 两点距离的算法
9.1.2 匀速运动
9.1.3 加速运动
9.2 图的遍历算法
9.2.1 路径算法
9.2.2 深度优先查找算法
9.2.3 广度优先查找算法
9.3 碰撞处理算法
9.3.1 以行进路线来检测
9.3.2 范围检测
9.3.3 颜色检测
9.4 遗传算法
9.5 课后习题
附录 课后习题与参考答案
第1章 程序设计与计算思维
计算机堪称20世纪以来人类最伟大的发明之一,对于人类的影响更甚于工业革命所带来的冲击。计算机是一种具备数据处理与计算功能的电子设备。自从人类发明并开始大量应用计算机之后,无论是政府、企业还是个人,对于数据和信息处理的效率都有了极大的提升,如图1-1所示。
图1-1 工厂生产线与大楼自动化安保管理
对于一个有志投身信息技术领域的人员来说,程序设计就是一门和计算机硬件与软件息息相关的学科,是计算机诞生以来一直蓬勃发展的一门新兴科学。之所以说它是新兴科学,是因为计算机的程序设计还在不断地发展和演变,只不过现在的方向是大数据和人工智能等领域。为了发挥计算机强大的运算能力,我们必须掌握程序设计的基本方法和了解它的基本概念。所谓程序,是由符合程序设计语言(Programming Language)语法规则的程序语句、程序代码或程序指令所组成的,而程序设计的目的是通过程序的编写与执行来满足计算机用户的需求。
提示
程序设计语言是一种人类用来和计算机沟通的语言,是由文字与记号所形成的程序语句、代码或指令的集合。程序设计语言主要的功能是将用户的需求使用程序指令表达出来,让计算机按照程序指令替我们完成诸多工作和任务,每种程序设计语言都有各自的文法规则,即语法(syntax),也就是它的使用规则。程序设计语言的语法一直朝着易于使用、易于调试、易于维护以及功能更强的目标持续发展和演变。
对于我们学习程序设计而言,目标无疑就是让我们设计的程序更有效率、可读性更高。我们知道,与计算机作为硬件工具一样,程序设计语言也只是一种应用工具,因此没有最好的程序设计语言,只有是否适合的程序设计语言,各种程序设计语言都是实现目标的方法。例如,著名的积木式程序设计语言Scratch,其集成开发环境的界面如图1-2所示。
图1-2 积木式程序设计语言是指设计者能以拖曳积木的方式来组合出程序
图1-3  云计算加速了新一代人才必须具备程序设计能力时代的来临
随着信息技术与网络科技的发展,当前进入物联网(Internet of Things,IoT)、大数据、人工智能的云计算(Cloud Computing)时代。一个国家或地区的程序设计能力已经被看成是国力或者地区竞争力的象征。程序设计不再只是信息类学科的专业,而是新一代人才必备的基本能力,各个先进的国家或者地区纷纷将程序设计(或简称编程)列入学生的必修课程,发达地区的城市中小学都开设了编程的信息课程。通过学习程序设计的过程让学生获得解决问题的能力,只有将“创意”通过“设计过程”与计算机相结合,才能顺应这个快速发展和演变的物联网、大数据、人工智能的云计算时代,如图1-3所示。
提示
“云”泛指“网 ............

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » 计算思维与算法入门 - (EPUB全文下载)