图书推荐|图解算法:C语言实现+视频教学版

图片

零负担理解数据结构及其算法的设计,零基础也能快速上手编程。

图片

本书内容

《图解算法:C语言实现+视频教学版》是一本综合讲述数据结构及其算法的入门书,力求简洁、清晰、严谨、且易于学习和掌握。

《图解算法:C语言实现+视频教学版》从介绍计算思维与程序设计两者之间的关系展开,首先讲述如何培养计算思维的4个部分:分解、模式识别、模式概括与抽象、算法。接着介绍经典算法的分类:分治法、递归法、贪心法、动态规划法、迭代法、枚举法、回溯法。还介绍常用数据结构:树结构、图论及哈希表。介绍了这些基础知识之后,在接下来的各章中分别介绍排序算法、查找算法、数组与链表相关算法、信息安全基础算法、堆栈与队列相关算法、树结构相关算法、图结构相关算法及人工智能基础算法,并搭配了C语言实现的完整范例程序。

《图解算法:C语言实现+视频教学版》每章还配有课后习题及参考答案,读者可边学边练,非常适合想学习数据结构和算法的初学者使用,也适合作为高等院校计算机及相关专业的教材。

本书作者

吴灿铭,现任荣钦科技股份有限公司执行长,美国Rochester Institute of Technology计算机科学研究所毕业,长期从事信息教育及计算机图书写作的工作,计算机图书著作包括计算机概论、数据结构、办公室电子数据处理、互联网等相关题材,并监制过多套游戏以及教学软件的研发。

胡昭民,现任荣钦科技股份有限公司董事长,美国Rochester Institute of Technology计算机科学研究所毕业,工作专业领域包括:信息科技公司经营、培训讲师、信息图书及奇幻小说写作等工作,并策划过多套游戏及教学软件的研发及主导营销计划,由于写作资历丰富,是目前资深且知名的计算机图书作家。

编辑推荐

零负担理解数据结构及其算法的设计,零基础也能快速上手编程。

采用C语言演绎算法思维。丰富图例阐述算法基础,将算法做简明的诠释及举例。强化程序设计逻辑,以C语言实现各种算法在程序设计领域的应用。

设计难易适中的习题,提供进一步演练,验收学习效果,精心录制的教学视频。化繁为简,编程小白也能读懂的算法书。

一本轻量级算法书,是你提高程序设计水平,提升自我价值的最佳投资。

本书目录

第1章  进入算法的世界1

1.1  计算思维2

1.1.1  分解3

1.1.2  模式识别4

1.1.3  模式概括与抽象4

1.1.4  算法5

1.2  计算思维的脑力大赛5

1.2.1  三分球比赛灯记录器6

1.2.2  图像字符串编码6

1.2.3  计算机绘图指令实践7

1.2.4  炸弹超人游戏7

1.3  生活中处处都存在算法8

1.3.1  算法的条件9

1.3.2  时间复杂度O(f(n))11

1.4  课后习题13

第2章  经典算法介绍14

2.1  分治法14

2.2  递归法15

2.3  贪心法18

2.4  动态规划法19

2.5  迭代法20

2.6  枚举法23

2.7  回溯法26

2.8  课后习题32

第3章  常用数据结构33

3.1  认识数据结构34

3.2  常见的数据结构36

3.2.1  数组36

3.2.2  链表38

3.2.3  堆栈39

3.2.4  队列40

3.3  树结构简介41

3.3.1  树的基本概念41

3.3.2  二叉树42

3.4  图论简介43

3.5  哈希表45

3.6  课后习题46

第4章  排序算法47

4.1  认识排序47

4.1.1  排序的分类48

4.1.2  排序算法分析48

4.2  冒泡排序法49

4.3  选择排序法52

4.4  插入排序法55

4.5  希尔排序法57

4.6  合并排序法60

4.7  快速排序法61

4.8  基数排序法65

4.9  课后习题68

第5章  查找算法69

5.1  常见查找算法的介绍69

5.2  顺序查找法70

5.3  二分查找法72

5.4  插值查找法74

5.5  斐波那契查找法76

5.6  课后习题81

第6章  数组与链表相关算法82

6.1  矩阵算法与深度学习82

6.1.1  矩阵相加84

6.1.2  矩阵相乘85

6.1.3  转置矩阵87

6.1.4  稀疏矩阵89

6.2  数组与多项式91

6.3  建立单向链表93

6.3.1  单向链表的串接94

6.3.2  单向链表中新节点的插入97

6.3.3  单向链表中节点的删除102

6.3.4  单向链表的反转105

6.4  课后习题109

第7章  信息安全基础算法110

7.1  数据加密111

7.1.1  对称密钥加密系统111

7.1.2  非对称密钥加密系统与RSA算法112

7.1.3  认证113

7.1.4  数字签名113

7.2  哈希算法114

7.2.1  除留余数法114

7.2.2  平方取中法115

7.2.3  折叠法116

7.2.4  数字分析法117

7.3  碰撞与溢出处理118

7.3.1  线性探测法118

7.3.2  平方探测法120

7.3.3  再哈希法120

7.3.4  链表法121

7.4  课后习题127

第8章  堆栈与队列相关算法128

8.1  以数组来实现堆栈128

8.2  以链表来实现堆栈131

8.3  汉诺塔问题的求解算法134

8.4  八皇后问题的求解算法139

8.5  以数组来实现队列142

8.6  以链表来实现队列145

8.7  双向队列149

8.8  优先队列153

8.9  课后习题154

第9章  树结构相关算法155

9.1  以数组来实现二叉树156

9.2  以链表来实现二叉树158

9.3  二叉树的遍历161

9.4  二叉树节点的查找165

9.5  二叉树节点的插入167

9.6  二叉树节点的删除170

9.7  堆积树排序法172

9.8  优化二叉查找树176

9.8.1  扩充二叉树176

9.8.2  哈夫曼树178

9.9  平衡树179

9.10  高级树结构的应用180

9.10.1  博弈树180

9.10.2  B树182

9.10.3  二叉空间分割树184

9.10.4  四叉树和八叉树185

9.11  课后习题187

第10章  图结构相关算法188

10.1  图的定义188

10.1.1  无向图188

10.1.2  有向图189

10.2  图的数据表示法191

10.2.1  邻接矩阵法191

10.2.2  邻接链表法193

10.2.3  邻接复合链表法196

10.2.4  索引表格法197

10.3  图的遍历197

10.3.1  深度优先遍历197

10.3.2  广度优先遍历201

10.4  生成树204

10.4.1  深度优先生成树和广度优先生成树205

10.4.2  最小生成树205

10.4.3  Kruskal算法206

10.4.4  Prim算法210

10.5  图的最短路径212

10.5.1  单点对全部顶点——Dijkstra算法与A*算法212

10.5.2  两两顶点间的最短路径——Floyd算法218

10.6  课后习题221

第11章  人工智能基础算法224

11.1  机器学习简介225

11.1.1  监督式学习226

11.1.2  半监督式学习227

11.1.3  无监督式学习与K均值聚类227

11.1.4  强化学习229

11.2  认识深度学习230

11.2.1  人工神经网络231

11.2.2  卷积神经网络234

11.2.3  循环神经网络239

11.3  课后习题242

附录A  课后习题与解答243

本文摘自《图解算法:C语言实现+视频教学版》,获出版社和作者授权发布

图解算法:C语言实现+视频教学版——京东

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter开发进阶之瞧瞧State

Flutter开发进阶之瞧瞧State 书接上回 上回说到StatefulWidget会将自身作为参数创建StatefulElement,然后StatefulElement的创建过程首先要调用_state = widget.createState(),会创建并持有一个state通过对其生命周期的管理去对Widget进行刷新,创建state后还会将自身交给st…

查看当前虚拟主机的php环境

近期看到一位用户在论坛的留言想要知道Linux虚拟主机的PHP环境,但是不清楚如何在主机上面查看,对于主机cPanel面板了解不多,因此在论坛寻求帮助。这边看到后详细的告知了这位用户,这边是以Hostease Linux虚拟主机为例的&#xff0…

Vue/Uni-app/微信小程序 v-if 设置出场/退出动画(页面交互不死板,看起来更流畅)

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 在Vue.js中&#xff0c;使用v-if进行条件渲染时设置动画可以通过<transition>组件来实现。 具体操作步骤如下&#xff1a; 包裹条件渲染的元素&#xff1a;您需要将要通过v-if控制显示隐藏的元素包裹在<transition…

02. Java 中的关键字、标识符、运算符、分隔符和注释

关键字 Java 的关键字(keyword、保留字)是 Java 语言中具有特殊含义的单词&#xff0c;它们被保留供 Java 自身使用&#xff0c;不能被用作标识符。例如 public、class、void、int 等都是关键字。 关键字在 Java 语法中起着重要的作用&#xff0c;它们定义了编程的结构、控制…

合并两个有序数组(力扣)

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组…

【开源-土拨鼠充电系统】鸿蒙 HarmonyOS 4.0 App+微信小程序+云平台

✨本人自己开发的开源项目&#xff1a;土拨鼠充电系统 ✨踩坑不易&#xff0c;还希望各位大佬支持一下&#xff0c;在Gitee或GitHub给我点个 Start ⭐⭐&#x1f44d;&#x1f44d; ✍Gitee开源项目地址&#x1f449;&#xff1a;https://gitee.com/cheinlu/groundhog-charging…

QT_day2:2024/3/21

作业1&#xff1a;使用QT完成一个登录界面 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置&#xff0c;通过代码实现 3. 需要添加适当的动图 源代码&#xff1a; #include "widget.h" #include "ui_widget.h"Widget…

蓝桥杯算法练习系统—金属采集(树形dp)

问题描述 人类在火星上发现了一种新的金属&#xff01;这些金属分布在一些奇怪的地方&#xff0c;不妨叫它节点好了。一些节点之间有道路相连&#xff0c;所有的节点和道路形成了一棵树。一共有 n 个节点&#xff0c;这些节点被编号为 1~n 。人类将 k 个机器人送上了火星&…

3/21 work

自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。&#xff08;不要使用课堂上的图片和代码&#xff0c;自己发挥&#xff0c;有利于后面项目的完成&#xff09; 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置&#xff0c;通…

头歌实训--机器学习(决策树)

第1关&#xff1a;决策树简述 第2关&#xff1a;决策树算法详解 import numpy as np from sklearn import datasets#######Begin####### # 划分函数 def split(x,y,d,value):index_a(x[:,d]<value)index_b(x[:,d]>value)return x[index_a],x[index_b],y[index_a],y[inde…

聚类算法之DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; DBSCAN是在1990年代后期推出的一种聚类方法&#xff0c;它迅速成为基于密度的聚类技术中最受欢迎和广泛使用的算法之一。与传统的聚类方法如K-me…

MT1490 修改字符串

原题链接:https://www.matiji.net/exam/brushquestion/490/778/B3FCFEC101BD05189BB74D522E019504 输入1个字符串, 如果其中小写字符多于大写字符&#xff0c;则将其全部转换为小写字符&#xff0c;如果大写字符多于小写字符&#xff0c;则全部转换为大写字符。 输入格式&…

高精度铸铁平台制造工艺有多精细——河北北重机械

高精度铸铁平台制造工艺通常包括以下几个步骤&#xff1a; 材料准备&#xff1a;选择合适的铸铁材料&#xff0c;并确保其质量符合要求。常用的铸铁材料包括灰铸铁、球墨铸铁等。 模具制造&#xff1a;根据平台的设计要求&#xff0c;制造适用的模具。模具一般由砂型、金属模具…

基于springboot+mysql+Shiro实现的宠物医院管理系统

1.项目介绍 系统主要为用户提供了管理员权限的用户&#xff0c;实现了前台查看客户信息、在线添加预约等&#xff1b;后台管理医生坐诊信息、管理就诊信息、修改密码&#xff0c;管理公告、管理宠物分类、管理就诊、管理用户、修改密码等。在设计方面&#xff0c;本系统采用MV…

CTF-辨别细菌

题目描述&#xff1a;try your best to find the flag. 进入靶场后发现是一个游戏&#xff0c;需要全部答对才可以得到最后的flag 查看了一下源码&#xff0c;发现有一个答案模板的模块 尝试解释一下代码 <!-- 答案模版 --> <script id"template_game_pi…

我国高纯电子级过氧化氢产量逐渐增长 未来有望实现完全国产替代

我国高纯电子级过氧化氢产量逐渐增长 未来有望实现完全国产替代 高纯电子级过氧化氢是氧化氢产品中技术含量最高的细分品类&#xff0c;多用于印刷电路板蚀刻、硅片清洗、光刻胶剥离等方面。经过多年发展&#xff0c;高纯电子级过氧化氢制备工艺已经成熟&#xff0c;大致可分为…

系统设计实例(二)新闻订阅系统

新闻订阅系统的设计和实现 Web 服务器&#xff1a;Web 服务器将流量重定向到不同的内部服务。Post 服务&#xff1a;在数据库和缓存中持久化帖子。Fanout 服务&#xff1a;将新内容推送到朋友的新闻订阅中。新闻订阅数据存储在缓存中以便快速检索。通知服务&#xff1a;通知朋…

设置客户端桌面壁纸 文件夹重定向

域策略-设置客户端桌面壁纸 1/服务器管理器组策略管理-gwy.com-Defait Domain Policy-右击编辑 2/用户配置-首选项-置windows设置-文件夹-右击文件夹-创建-C:\bgp-应用 3/在客户端策略更新-gpupdate /force 命令符-查看是否正确 4/服务器创建c:\image\R-C.jpg&#xff0c;共享文…

【什么是Internet?网络边缘,网络核心,分组交换 vs 电路交换,接入网络和物理媒体】

文章目录 一、什么是Internet&#xff1f;1.从具体构成角度来看2.从服务角度来看 二、网络结构1.网络边缘1.网络边缘&#xff1a;采用网络设施的面向连接服务1.1.目标&#xff1a;在端系统之间传输数据1.2.TCP服务 2.网络边缘&#xff1a;采用网络设施的无连接服务2.1目标&…

Zotero引入英文参考文献作者都是大写字母问题

修改之前是这样的&#xff1a; 修改过程 进入word 打开样式编辑器 打开后&#xff0c;找到这里&#xff1a; 删除 text-case“uppercase” 就可以实现这个样式&#xff1a; 然后我们点击保存&#xff0c;将这个样式文件另存为&#xff0c;然后替换掉原来的文件 源文件在 …