
算法
tony820418
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划-最长公共子序列
https://www.cnblogs.com/hapjin/p/5572483.html 一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二,算法求解 这是一个动态规划的题目。对于可用动态规划求...转载 2018-09-21 13:43:13 · 2816 阅读 · 0 评论 -
单源最小路径BellMan Ford算法
Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法。 输入:带权图 输出:从第0个点到其他点的最短路径值 Bellman-Ford 算法描述: 创建源顶点 v 到图中所有顶点的距离的集合 distSet,为图中的所有顶点指定一个距离值,初始均为 Infinite,源顶点距离为 0; 计算最短路径,...原创 2018-12-06 17:18:41 · 434 阅读 · 0 评论 -
算法之拓朴排序DFS实现
拓朴排序:是指在AOV网中,把所有的点按照它们的逻辑关系排成一个线性的序列,是每个点的前驱都排在它前面,称之为top序列。 常用排序算法有两种,下面为DFS算法实现 一、DFS实现 假设树结构如下 链接表表示: 一个vistied数组,表示每个结点是否被访问到 算法流程如下: 最后栈的结果如下: 完整实现代码如下: 图的表示类: package co...原创 2018-11-28 17:33:45 · 1272 阅读 · 0 评论 -
算法之最强连通算法Kosaraju(DFS)实现
最强连通分支 有向图G=(V, E)的一个强连通分支就是一个最大的顶点子集C,对于C中每对顶点(s, t),有s和t是强连通的,并且t和 s也是强连通的,即顶点s和t是互达的。找出图中给出了强连通的所有分支,有多种算法, 本文介绍Kosaraju算法。 算法步骤如下 1、按topSort方法,得到有向图的伪topSort的序列,为什么说是伪?因为topSort是对无回环的图,而现在是对有回环...原创 2018-11-30 16:13:03 · 1672 阅读 · 0 评论 -
算法之马踏棋盘
马踏棋盘算法,使用递归与回朔算法,完成时效率极低,当棋盘8*8时,已经很慢了。 修改一下算法, 当进行某一格的下一步n个位置选择时(ABCDEFG),把这n个位置排个序,按照下一步可走的位置的个数从小到大排序,遍历时按这个顺序进行,效率提交非常高,16*16的一秒就可以出结果。 以下代码随便写的,可以跑通,有很多优化的地方。 import java.util.*; import java....原创 2018-11-27 14:06:04 · 340 阅读 · 0 评论 -
算法之最小生成树(Prim实现)
最小生成树概念: 此处不做详细说明:生成树各边的权值总和称为生成树的权,权最小的生成树称为最小生成树。 Prim算法介绍,是一种贪心算法使用邻接矩阵作为存储结构的Prim算法的时间复杂度为O(V*V),即为本文后续代码的时间复杂度。 如果使用二叉堆与邻接表表示的话,Prim算法的时间复杂度可缩减为O(E log V),其中E为连通图的边数,V为顶点数。如果使用较复杂的斐波那契堆,则可将运行时...原创 2018-12-04 12:06:14 · 359 阅读 · 0 评论 -
算法导论-图(一):图的表示
图分为有向图与无向图,表示方法有多种,初级表示方法如:邻接表与邻接阵,高级表示方法如:十字链表法,邻接多重表,边集数组法。 1、邻接表与邻接矩阵:(以下是算法导论的图) 可以表示有向图,无向图,有向加权图,无向加权图。 邻接表好处:节省空间,对稀疏图表示有优势;坏处:以顶点为单位地行保存,在大量边计划的场景下使用不方便,两个vertext之间是否有连接需要遍历。场景:稀疏矩阵,图较大时,加权...原创 2018-11-21 11:14:31 · 439 阅读 · 0 评论 -
算法之字符串查找BruteForce
/* * 字符串暴力查找法 * 原字符串长度假设为M, 子字符串长度为N * 算法时间复杂度为O(M*N),空间复杂度为O(1) * 子字符串第一个字每与原字符串从头依次比较,如果相同,进行第二个字母比较,如果不同,继续与第一个字母比较 */ public class BruteForce { public static int getFirstPosition(String src ...原创 2018-11-01 13:50:50 · 200 阅读 · 0 评论 -
算法之八皇后问题
/* 递归实现8皇后问题解决 */ public class EightQuee { static final int QueeNum = 8; int count = 0; public void start(){ int[][] map = new int[QueeNum][QueeNum]; getResult(0 , m...原创 2018-11-01 11:18:53 · 162 阅读 · 0 评论 -
点与点的最短路径Floyd-warshall算法
最短路径的结构 Floyd 算法考虑的是一条路径上的中间结点。对于任意结点对 i,j∈V,考虑从结点 i 到结点 j 的所有中间结点均取自集合 {1, 2, …, k} 的路径(该集合是 V 的一个子集),并且设 p 为最短路径。 有两种情况: 如果结点 k 不是路径 p 上的中间结点,则路径 p 上的所有中间结点都属于集合 {1, 2, …, k - 1}。 如果结点 k 是路径 p 上的中...原创 2018-12-10 11:28:08 · 490 阅读 · 0 评论