Loading...
Yo, what’s up! 这里是二楼。
用户头像
粉丝
关注
随笔
文章
评论
阅读

随笔分类 -  算法

摘要:定义 BM 算法是由 Boyer 和 Moore 两人提出的一种高效的字符串匹配算法,被认为是一种亚线性算法(即平均的时间复杂度低于线性级别),其时间效率在一般情况下甚至比 KMP 还要快 3 ~ 5 倍。 原理 BM 算法跟其他的字符串匹配算法相比,其中一个不同之处是在比对字符的时候,扫描的顺序不 阅读全文
posted @ 2023-02-14 20:10 YVVT_Real 阅读(1370) 评论(1) 推荐(1) 编辑
摘要:定义 Dijkstra(读音:/'daɪkstrə/)算法,是用来求解一个边带权图中从某个顶点出发到达其余各个顶点的最短距离的算法。(为表达简便,下文中“起点(源点)到某个顶点的距离”简称为“某个顶点的距离”) 限制条件:各个边的权不能为负。 原理 假设s,v1,v2,...,vn(以下简称P1)为 阅读全文
posted @ 2023-02-04 23:37 YVVT_Real 阅读(485) 评论(0) 推荐(1) 编辑
摘要:相信不少人在学数据结构的时候都被KMP算法搞的迷迷糊糊的,原理看的似懂非懂,代码写不出来,或者写出来了也不知道为什么就可以这么写。本文力求尽可能通俗详细的讲解KMP算法,让你不再受到KMP算法的困扰。 暴力匹配的痛点 所谓暴力匹配,就是从文本串的首端开始依次检查子串是否与模式串匹配,如果不匹配就将模 阅读全文
posted @ 2023-01-20 20:29 YVVT_Real 阅读(404) 评论(0) 推荐(1) 编辑
摘要:在有向图的拓扑排序——BFS这篇文章中,介绍了有向图的拓扑排序的定义以及使用广度优先搜索(BFS)对有向图进行拓扑排序的方法,这里再介绍另一种方法:深度优先搜索(DFS)。 算法 考虑下面这张图: 首先,我们需要维护一个栈,用来存放DFS到的节点。另外规定每个节点有两个状态:已访问(这里用蓝绿色表示 阅读全文
posted @ 2022-12-30 16:16 YVVT_Real 阅读(1366) 评论(0) 推荐(0) 编辑
摘要:假设你有n个任务要做,其中某些任务需要在另外一些任务之前完成,你该如何规划你的任务,使得按照你的规划依次做下去就能完成你的所有任务? 定义 拓扑排序(Topological sorting, toposort):给定一个有向无环图,将所有节点排成一个线性序列,在这个序列中只有从前面的节点指向后面的节 阅读全文
posted @ 2022-12-09 12:07 YVVT_Real 阅读(596) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示