介绍树的定义和基本术语;二叉树基础知识、性质;二叉树前中后序遍历,层次遍历;哈夫曼编码等。
算法 - 优先队列 - 斐波那契堆
斐波那契堆是优先队列的一种实现。
算法 - 字符串排序算法
介绍字符串的几种排序算法:键索引计数法、低位优先排序、高位优先排序、三向字符串快速排序。
算法 - 子字符串匹配 BM 算法
介绍子字符串匹配算法:从右至左暴力匹配算法,BM
算法。
算法 - 子字符串匹配 KMP 算法
介绍子字符串匹配算法:暴力匹配算法,KMP
算法。
算法 - 最短路径应用场景
最短路径常见应用场景:加权无向图最短路径、给定两点的最短路径、加权有向无环图的最长路径、并行任务调度、负权重环检测、套汇等等。
算法 - 最短路径:有向无环图
在计算最短路径时,Dijkstra
算法和 Bellman-Ford
算法都可以包含环,但是时间复杂度都较高。而有向无环图中,使用拓扑顺序放松边,能非常高效解决单点路径问题。
算法 - 最短路径树 Bellman-Ford 算法
Bellman-Ford
贝尔曼-福特算法,是求含负权图的单源最短路径的一种算法。特点:支持有环,负权重,但不能存在负权重环。
算法 - 最短路径树基础以及 Dijkstra 算法
介绍最短路径基础概念;以及 Dijkstra
算法 - 迪科斯彻算法:解决边权重非负的加权有向图的单点最短路径问题。
算法 - 最小生成树 Kruskal 算法
Kruskal
算法 - 克鲁斯卡尔算法,是一种用来寻找最小生成树的算法。在剩下的所有未选取的边中,找最小边;如果和已选取的边构成回路,则放弃选取次小边。