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

news2024/11/14 2:51:51

图片

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

图片

本书内容

《图解算法: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语言实现+视频教学版——京东

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【系统架构师】-第6章-数据库设计基础知识

1、三级模式-两级映像 外模式:视图、用户与数据库的接口 概念模式:表 内模式:存储方式,索引创建等 1)外模式-模式映射: 视图与表的映射,表数据发生修改,只需要修改映射&#xf…

淘宝店铺如何从1688一键铺货?官方授权API接口,可满足多样化上货需求

那么新手卖家如何将1688的源头厂货一键铺货到淘宝店铺呢?下面我教大家几招: 1、通过淘宝复制一键复制上货 淘宝API接口采集 taobao.item_get 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretStr…

销售数据分析怎么做?用好这5个数据分析方法与模型就足够了。

企业经营其实简单来说就是做买卖,有了买卖自然就产生了销售数据,那怎么能让这些销售数据产生价值呢?答案就是数据分析。通过对销售数据的分析,可以帮助企业及时洞察市场动向,发现企业销售过程中的问题,调整…

用户行为分析是什么?为什么我们需要 bitmap?

本文非常好:https://blog.bcmeng.com/post/doris-bitmap.html meta搜也非常好:https://metaso.cn/ 用户行为分析是什么?简单说,就是围绕全体用户,做各种分析。用户就是一个个的 id。id 在不同方面有各种行为记录&…

c语言--字符转换函数(tolower、toupper.)

目录 一、前言二、使用举例 一、前言 C语⾔提供了2个字符转换函数&#xff1a; int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写 int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写二、使用举例 #include <ctype.h> #include<stdio.h> int main(…

母亲的奶牛(蓝桥杯,acwing每日一题)

题目描述&#xff1a; 农夫约翰有三个容量分别为 A,B,C升的挤奶桶。 最开始桶 A 和桶 B 都是空的&#xff0c;而桶 C 里装满了牛奶。 有时&#xff0c;约翰会将牛奶从一个桶倒到另一个桶中&#xff0c;直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。 这一过程中间不能有…

LeetCode刷题记录:(12)全排列2

leetcode传送通道 class Solution {List<List<Integer>> result new ArrayList<>();List<Integer> path new ArrayList<>();boolean[] used;public List<List<Integer>> permuteUnique(int[] nums) {used new boolean[nums.lengt…

Java代码基础算法练习-求一个三位数的各位平方之和-2024.03.21

任务描述&#xff1a; 输入一个正整数n&#xff08;取值范围&#xff1a;100<n<1000&#xff09;&#xff0c;然后输出每位数字的平方和。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;public class m240321 {public …

OpenCV4.9.0开源计算机视觉库安装教程

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 引言&#xff1a;OpenCV系列文章中的安装部分今天全部完成了&#xff0c;为了读者更方便阅读&#xff0c;大家可以按下列索引前往&#xff0c;成文较为仓促有错漏在所难免&#xff0c;欢迎大家指正…

CircuitBreaker熔断器

CircuitBreaker熔断器 1、Hystrix目前也进入维护模式 ​ Hystrix是一个用于处理分布式系统的延迟和容错的开源库&#xff0c;在分布式系统里&#xff0c;许多依赖不可避免的会调用失败&#xff0c;比如超时、异常等&#xff0c;Hystrix能够保证在一个依赖出问题的情况下&…

Uibot6.0 (RPA财务机器人师资培训第2天 )采购付款——网银付款机器人案例实战

训练网站&#xff1a;泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff0…

关于IP地址的查询方法

IP全称Internet Protocol&#xff0c;即互联网协议&#xff0c;是一种网络通信协议&#xff0c;主要用于实现网络互连和设备之间的通信。它规定了计算机在因特网上进行通信时应当遵守的规则&#xff0c;使得不同设备之间能够互相识别、连接和交换信息。IP地址则是IP协议提供的一…

【UE5】动画蒙太奇简述

项目资源文末百度网盘自取 动画蒙太奇基本功能 动画蒙太奇&#xff08;Animation Montage&#xff09; 可以将多个 动画序列&#xff08;Animation Sequences&#xff09; 合并为单个资产并通过蓝图播放&#xff0c;还可以将一个蒙太奇动画切分为多个 蒙太奇分段&#xff08;M…

如何实现RPC调用框架底层代码,并用Java写一个RPC调用案例

RPC&#xff08;Remote Procedure Call&#xff09;是一种远程调用的通信模式&#xff0c;通过网络将请求发送到远程服务器上并获取返回结果。在分布式系统中&#xff0c;RPC可以方便地实现不同机器之间的函数调用&#xff0c;简化了分布式系统的开发和维护工作。 本文将介绍如…

十九、网络编程

目录 一、什么是网络编程二、网络编程三要素2.1 IP2.2 InetAddress的使用2.3 端口号2.4 协议 三、UDP通信程序3.1 发送数据3.2 接收数据3.3 练习 四、UDP的三种通信方式五、TCP的通信程序六、三次握手和四次挥手七、练习7.1 TCP通信练习1——多发多收7.2 TCP通信练习2——接收和…

李宏毅深度强化学习导论——基本概念

引言 这是李宏毅老师深度强化学习视频的学习笔记&#xff0c;主要介绍强化学习的基本概念&#xff0c;从直观的角度去教大家如何理解强化学习的知识而不是理论的角度&#xff0c;所以包含的数学公式不多。 什么是强化学习 我们知道监督学习需要人类给机器一个标签&#xff0c…

【网络原理】详解HTTPS协议加密过程

文章目录 &#x1f334;HTTPS协议是什么&#xff1f;&#x1f384;运营商劫持事件&#x1f332;HTTPS的工作过程&#x1f338;对称加密&#x1f338;非对称加密&#x1f338;引入证书&#x1f338;完整流程 &#x1f333;HTTPS加密总结⭕总结 &#x1f334;HTTPS协议是什么&…

每日一题 --- 27. 移除元素 - 力扣 [Go]

移除元素 题目&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…

C++进阶02 多态性

听课笔记简单整理&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;听课的记录代码~&#x1f9e9;&#x1f9e9; 编辑&#xff1a;梅头脑&#x1f338; 审核&#xff1a;文心一言 目录 &#x1f433;课程来源 &#x1f433;前言 &#x1f40b;运…

1.3 Python是什么

Python是什么&#xff0c;Python简介 Python 是荷兰人 Guido van Rossum &#xff08;吉多范罗苏姆&#xff0c;中国程序员称其为“龟叔”&#xff09;在 1990 年初开发的一种解释型编程语言。 图1&#xff1a;Python 的标志&#xff08;Logo&#xff09; Python 的诞生是极具…