数据结构和算法
文章平均质量分 87
加糖苏打水
恭请光临~
展开
-
【解惑】全搞懂弗洛伊德算法
Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。弗洛伊德算法可以说是求最短距离算法中代码最简单的(就三层for循环),但是它的思想却不简单,本文的重点在于彻底搞懂弗洛伊德算法,解答可能的疑点!原创 2023-09-07 19:46:42 · 754 阅读 · 1 评论 -
一文秒懂迪克斯特拉Dijkstra算法
迪克斯特拉Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块,且权值不能为负。原创 2023-09-03 11:01:10 · 1744 阅读 · 0 评论 -
一文搞懂KMP算法和next数组
本文结合了较多博主的见解,结合自己的思考,全面详细地剖析KMP算法以及next数组的运作过程,帮助大家直接痛处,分分钟拿下KMP算法。原创 2023-08-31 14:05:14 · 104 阅读 · 0 评论 -
线索化二叉树的遍历(容易理解)
二叉树的遍历,以中序遍历为例,参考下图1,需要频繁的递归和出入栈,如当节点没有右儿子,后继节点其实没有那么容易判断,如图2的E点,而且如果不通过递归和栈的性质将很难获得其后继, 这可能会占用额外的内存,而且也不容易理解。线索是一种对二叉树的操作,意思是对二叉树进行线索化,其目的是使线索化后的二叉树具有方便被遍历的特点,即。原创 2023-08-26 04:00:00 · 65 阅读 · 0 评论 -
希尔排序详解
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序(Diminishing Increment Sort)。原创 2023-08-21 11:57:53 · 703 阅读 · 1 评论