美文网首页《数据结构与算法之美》学习笔记
专题列表页
《数据结构与算法之美》学习笔记

极客时间2018年9月推出的《数据结构与算法之美》专栏的学习笔记

  • 0
    2020-08-09
  • 拓扑排序数据结构 有向无环图-邻接表数据结构 算法 1.Kahn算法 Kahn算法实际上用的是贪心算法思想,思路非常简单、...[作者空间]

  • 0
    2020-07-19
  • 动态规划理论“一个模型三个特征”理论讲解 什么是“一个模型”?它指的是动态规划适合解决的问题的模型。我把这个模型定义为“多阶段...[作者空间]

  • 0
    2020-07-18
  • 初识动态规划0-1 背包问题 备忘录 动态规划-二维数组 动态规划-一维数组 0-1 背包问题升级版 回溯算法 动态规划-二维...[作者空间]

  • 0
    2020-07-17
  • 回溯算法如何理解“回溯算法”? 回溯的处理思想,有点类似枚举搜索。我们枚举所有的解,找到满足期望的解。为了有规律地枚举所有...[作者空间]

  • 0
    2020-07-16
  • 分治算法如何理解分治算法? 分治算法(divide and conquer)的核心思想其实就是四个字,分而治之,也就是将原...[作者空间]

  • 0
    2020-07-16
  • 贪心算法如何理解“贪心算法”? 第一步,当我们看到这类问题的时候,首先要联想到贪心算法:针对一组数据,我们定义了限制值和期...[作者空间]

  • 0
    2020-07-05
  • AC自动机字符串匹配算法 单模式串匹配算法 是在一个模式串和一个主串之间进行匹配,也就是说,在一个主串中查找一个模式串。 多...[作者空间]

  • 0
    2020-07-03
  • Trie树什么是“Trie树” Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结...[作者空间]

  • 0
    2020-06-22
  • 字符串匹配基础BF算法 BF 算法中的 BF 是 Brute Force 的缩写,中文叫作暴力匹配算法,也叫朴素匹配算法。 我们...[作者空间]

  • 0
    2020-06-15
  • 图的深度和广度优先搜索无向图 广度优先搜索(BFS) 它其实就是一种“地毯式”层层推进的搜索策略,即先查找离起始顶点最近的,然后是次近的...[作者空间]

  • 0
    2020-06-07
  • 图的表示如何理解“图”? 图中的元素我们就叫作顶点(vertex)。图中的一个顶点可以与任意其他顶点建立连接关系。我们把这...[作者空间]

  • 0
    2020-06-07
  • 堆排序应用堆的应用一:优先级队列 优先级队列,顾名思义,它首先应该是一个队列。队列最大的特性就是先进先出。不过,在优先级队列...[作者空间]

  • 0
    2020-06-07
  • 堆和堆排序堆定义 堆是一个完全二叉树; 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 对于每个节点的...[作者空间]

  • 0
    2020-05-28
  • 红黑树什么是“平衡二叉查找树”? 平衡二叉树的严格定义是这样的:二叉树中任意一个节点的左右子树的高度相差不能大于 1。 ...[作者空间]

  • 0
    2020-05-27
  • 二叉树基础下二叉查找树 它不仅仅支持快速查找一个数据,还支持快速插入、删除一个数据。这些都依赖于二叉查找树的特殊结构。二叉查找...[作者空间]

  • 0
    2020-05-27
  • 二叉树基础上树 节点的高度=节点到叶子节点的最大路径(边数) 节点的深度=根节点到这个节点所经历的边的个数 节点的层数=节点的...[作者空间]

  • 0
    2020-05-27
  • 哈希算法什么是哈希算法? 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射...[作者空间]

  • 0
    2020-05-27
  • 散列表下为什么散列表和链表经常会一起使用? 散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数...[作者空间]

  • 0
    2020-05-27
  • 散列表中如何设计散列函数 散列函数的设计不能太复杂 散列函数生成的值要尽可能随机并且均匀分布 装载因子过大了怎么办? 对于...[作者空间]

  • 0
    2020-05-27
  • 散列表上散列思想 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说...[作者空间]