快速上手C++数据结构与算法- 极客时间课程推荐/优惠

快速上手C++数据结构与算法--极客时间课程推荐/优惠

手撕优质代码,突破算法难关
王健伟《C++新经典》系列作者,资深C++讲师
专栏 | 55讲 | 3644人已学习
优惠价¥68原价:199
官网优惠购买

版权声明

本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

你将获得

  • 40+ 经典数据结构与算法一网打尽
  • “保姆级”代码实现与图示详解
  • 聚焦 60+ 算法高频面试题目
  • 从 0 到 1 算法优化逻辑精讲

课程介绍

提到数据结构与算法,“吃透”和“内功”这两个词像两座大山一样压在身上,让人喘不过气,以至于出现了很多所谓的坚持和抱怨。但是,作为一门计算机专业的基础课程,它也的确是我们学习之路上绕不开的伙伴。

要想进入大厂,它是许多求职者的敲门砖;想要深入了解热门技术,比如微服务、大数据、云计算等等,它也是必备的基础知识。

然而我们发现,涉及数据结构和算法知识方面的资料多数比较晦涩,不是数学知识过多,就是学术性太强。有些资料知识覆盖面太过宽泛甚至表达不清,导致学习者一头雾水,所提供的实现代码也往往是伪码或代码片段,很难让人有舒适的学习体验。

为此,我们邀请到了《C++ 新经典》系列作者,资深 C++ 讲师王健伟,帮你抛下身上对于数据结构与算法的沉重包袱,回归最基础的概念与代码,夯实基础、打开思路,潜移默化地培养数据结构与算法的敏感度,更为之后的每一次实战打下坚实的基础。

课程模块设计

本专栏分为3个由浅入深的大模块。

预习模块
到底什么是数据结构与算法?为什么编程环境还会是我们的绊脚石?这一模块将为你打开数据结构与算法的大门,扫清所有非知识性的障碍,同时,也将回到具体的代码实现上,为你建立算法的时间复杂度和空间复杂度的意识,为后面的学习打好基础。

基础模块
这个模块包括线性表、树、图、排序、字符串、跳表与哈希表等等面试或应用当中遇到的大部分数据结构与算法。课程会先详细呈现一个数据结构或一个算法的概念和思路,充分理解后,再将思路通过代码的方式实现出来,整个过程会更顺理成章。同时,也避免了在学习的初级阶段就接触过多抽象思维,删繁就简,易懂性强。

进阶篇
这个模块包含一些难度相对较大,在面试中出现频率没那么高的内容,比如 B+ 树、折半插入排序、计数排序、基数排序及桶排序等等。少花一点精力,少敲一些代码,把课程中讲解的内容理解就完全没问题了。

课程目录

开篇词

  • 开篇词|学习数据结构与算法,也可以是件小事

预习篇

  • 01|编程环境:工欲善其事,必先利其器

线性表

  • 02|顺序表(上):如何实现快速地随机访问?
  • 03|顺序表(下):常用操作合集与复杂度分析
  • 04|单链表:如何通过指针提升插入、删除数据的速度?
  • 05|双链表:搜索链表中节点的速度还可以更快吗?
  • 06|循环链表:如何更方便地寻找数据?
  • 07|静态链表:用一维数组表达的链表
  • 08|栈:如何实现数据的后进先出?
  • 09|队列:如何实现数据的先进先出?

树形结构

  • 10|二叉树:二叉树到底长什么样子?
  • 11|二叉树:深度优先和广度优先遍历是什么?
  • 12|二叉树:如何存储二叉树?
  • 13|线索二叉树:如何线索化二叉树以提升访问速度?
  • 14|二叉查找树(BST):查找速度你最行
  • 15|平衡二叉树(AVL):平衡如此重要,怎么做到的?
  • 16|平衡二叉树(AVL):节点删除后的平衡性调整
  • 17|红黑(R-B)树:和平衡二叉树有什么不同?
  • 18|红黑(R-B)树:节点插入后的平衡性调整
  • 19|红黑(R-B)树:节点删除后的平衡性调整(一)
  • 20|红黑(R-B)树:节点删除后的平衡性调整(二)
  • 21|哈夫曼(Huffman)树:将数据压缩后再传输更省带宽
  • 22|树、森林、二叉树:相互之间的转换

  • 23|图:如何用图表达错综复杂的数据?
  • 24|图的存储(上):邻接矩阵、邻接表和十字链表有什么不同?
  • 25|图的存储(下):为什么我们还需要邻接多重表和边集数组?
  • 26|图:深度优先遍历(DFS)与广度优先遍历(BFS)
  • 27|最小生成树:如何用普里姆(Prim)算法解决修路费用最少的问题?
  • 28|最小生成树:克鲁斯卡尔(Kruskal)算法与修路费用最少的问题?
  • 29|最短路径:迪杰斯特拉(Dijkstra)算法与选择最节省时间的行走路线问题
  • 30|最短路径:弗洛伊德(Floyd)算法与乘车费用最少的问题
  • 31|图的应用:如何通过拓扑排序找到合理的先后顺序?
  • 32|图的应用:如何通过关键路径估算完成工程需要的最短时间?

排序

  • 33|直接插入排序:为什么数据越有序,排序速度越快?
  • 34|希尔排序:通过部分有序逼近全局有序
  • 35|冒泡排序:大数下沉,小数上浮
  • 36|快速排序:如何通过基准元素改进冒泡排序?
  • 37|简单选择排序与堆排序:多趟排序与利用有序完全二叉树进行排序
  • 38|归并排序:将多个有序序列按其中的元素值大小两两合并

字符串

  • 39|串的顺序和链式存储结构:定长数组与动态数组
  • 40|串的朴素模式匹配算法:暴力但容易理解
  • 41|串的KMP模式匹配算法观察:理解困难
  • 42|串的KMP模式匹配算法之实现与性能分析:代码实现简单
  • 43|串的KMP模式匹配算法之改进:通过优化代码解决多次重复比较问题

跳表与哈希表

  • 44|跳表:为什么Redis用跳表实现而MySQL用B+树?
  • 45|哈希表与哈希算法:哈希表适合用在什么样的情景?
  • 46|哈希表与哈希算法:字符串的MD5值是通过哈希算法得到的?

进阶篇

  • 47|多路查找树:B树在数据库中的应用
  • 48|多路查找树:B+树的插入与删除操作详解
  • 49|多路查找树:B树、B+树在数据库中的应用有何不同?
  • 50|折半插入、2路插入、表插入:3种插入类排序类排序有哪些异同?
  • 51|树形选择排序:按照锦标赛的思想进行排序
  • 52|计数排序:不通过比较也可以进行排序
  • 53|基数排序与桶排序:如何通过分配和收集进行排序?

结束语

  • 结束语|日拱一卒,功不唐捐

作者介绍

王健伟,1995 年毕业于哈尔滨工程大学计算机及其应用专业,从业软件开发 20 余年。主攻 C++ 语言,经历过数十个软件项目,主要涉及电信、网络安全、网络游戏等开发领域,具备深厚的软件开发实战经验。 “C++ 新经典”系列书籍《C++ 新经典》《C++ 新经典:对象模型》《C++ 新经典:Linux C++ 通信架构》《C++ 新经典:模板与泛型编程》《C++ 新经典:设计模式》作者。拥有多年授课经验,讲课风格深入浅出。 也曾参与创办深圳知名网络安全公司安络科技有限公司,是公司的网络安全在线扫描评估系统项目负责人,全球同服独立游戏《冒险之路》制作人。

推荐

手把手教你落地DDD - 极客时间课程推荐/分享/优惠/折扣
手把手教你落地DDD
25年技术老兵的DDD学习指南
钟敬Thoughtworks首席咨询师、数字化转型与运营团队DDD负责人
专栏 | 21617人已学习
优惠价¥59原价:129
官网优惠购买
技术管理案例课 - 极客时间课程推荐/分享/优惠/折扣
技术管理案例课
踩坑复盘+案例分析+精进攻略=高效管理
许健eBay基础架构工程研发总监
专栏 | 21784人已学习
优惠价¥59原价:99
官网优惠购买
软件工程之美 - 极客时间课程推荐/分享/优惠/折扣
软件工程之美
重新理解软件工程
宝玉Groupon资深工程师,微软最有价值专家
专栏 | 44896人已学习
优惠价¥59原价:129
官网优惠购买
机器学习40讲 - 极客时间课程推荐/分享/优惠/折扣
机器学习40讲
帮你打通机器学习的任督二脉
王天一工学博士,副教授
专栏 | 36432人已学习
优惠价¥59原价:99
官网优惠购买
手把手带你写一个MiniTomcat - 极客时间课程推荐/分享/优惠/折扣
手把手带你写一个MiniTomcat
6 周搭建一个实用的 Tomcat 框架
郭屹前 Sun Microsystems Java 研发工程师,开源软件 MiniSpring、MiniTomcat 开发者
专栏 | 2342人已学习
优惠价¥59原价:99
官网优惠购买