-
图最短路径算法之弗洛伊德算法(Floyd)
Floyd算法
定义概览
Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。
Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。
算法描述
1) 算法思想原理:
Floyd算法是一个经典的动态规划算法...
2020-01-23 02:09:32 |
Data-Struct
-
图最短路径算法之迪杰斯特拉算法(Dijkstra)
问题定义
求解单元点的最短路径问题:给定带权有向图G和源点v,求v到G中其他顶点的最短路径
限制条件:图G中不存在负权值的边(这个可以通过弗洛伊德算法,后期将进行讲解)
核心思想
设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中,直到全部顶点都加入到S中,算法...
2020-01-23 02:09:32 |
Data-Struct
-
java 实现有向图(Direct Graph)
基本概念
图
图是数据结构中最为复杂的一种,我在上大学的时候,图的这一章会被老师划到考试范围之外,作为我们的课后兴趣部分。
但实际上,图在信息化社会中的应用非常广泛。图主要包括:
无向图,结点的简单连接
有向图,连接有方向性
加权图,连接带有权值
加权有向图,连接既有方向性,又带有权值
图是由一组顶...
2020-01-23 02:09:32 |
Data-Struct
-
DAG 有向无环图(Directed Acyclic Graph)
中文分词的算法
中文分词算法中,有一步就需要实现 DGA(有向无环图)。
所以来学习一下这种数据结构。
图
图是数据结构中最为复杂的一种,我在上大学的时候,图的这一章会被老师划到考试范围之外,作为我们的课后兴趣部分。
但实际上,图在信息化社会中的应用非常广泛。
图主要包括:
无向图,结点的简单连接
有向图,连接有方向性
加权图,连接带有权值
加权有向图,连接既有方向性,又...
2020-01-23 02:09:32 |
Data-Struct
-
DAG 拓扑序列 什么是拓扑排序 Topological Sorting
拓扑序列
拓扑序列是顶点活动网中将活动按发生的先后次序进行的一种排列。
拓扑排序,是对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。
...
2020-01-23 02:09:32 |
Data-Struct
-
利用有向无环图(DAG)进行任务调度
定时任务
定时任务是软件开发中经常遇到的问题。
简单的定时任务只需要在固定时间触发它的执行就可以了。
但是对于复杂的定时任务,可能是由多个任务组成一个任务组,它们之间存在依赖关系,一个任务执行的条件,必须是它的前置任务已经执行成功(或者没有前置任务),它才可以执行。
例如下面这幅图:
图中任务的依赖关系为:
任务1:依赖2,5
任务2:依赖3,4
任务3:无依赖
任务4...
2020-01-23 02:09:32 |
Data-Struct
-
数据结构之背包,栈,队列,链表
数据结构
提到数据结构,不得不说数据类型,有人将他们比作分子和原子的关系,我们都知道大自然最小的构成单位是原子,数据类型描述的是原子的内部,如质子、中子的情况,而数据结构是分子,由不同的原子以各种各样的结构组成。
java 的数据类型
先说Java的数据类型,包括八种基本类型以及对象类型,
内置类型 八种基本类型 值类型 传输时传输值本身 内存随着值传输而变化
扩展类型 对象类型 ...
2020-01-23 02:09:32 |
Data-Struct
-
数据结构与算法学习-《算法》目录
算法第四版
第1章 基础
1.1 基础编程模型
1.1.1 Java程序的基本结构
1.1.2 原始数据类型与表达式
1.1.3 语句
1.1.4 简便记法
1.1.5 数组
1.1.6 静态方法
1.1.7 API
1.1.8 字符串
1.1.9 输入输出
1.1.10 二分查找
1.1.11 展望
1.2 数据抽象
1.2.1 使用抽象数据类型
1.2.2 抽...
2020-01-23 02:09:32 |
Data-Struct