Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

Floyd算法(一) C语言详解

Floyd算法(一) C语言详解

Floyd算法(一) C语言详解2014-12-10弗洛伊德算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。基本思想通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入一个矩阵S,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离。假设图G...
Floyd算法(二) C++详解

Floyd算法(二) C++详解

Floyd算法(二) C++详解2014-12-10弗洛伊德算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。基本思想通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入一个矩阵S,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离。假设图G...
Floyd算法(三) Java详解

Floyd算法(三) Java详解

Floyd算法(三) Java详解2014-12-10 未知 弗洛伊德算法介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。基本思想通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入一个矩阵S,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离...
LSD:低关键字优先;链式基数排序;lst.remove();取出和删除表头元素

LSD:低关键字优先;链式基数排序;lst.remove();取出和删除表头元素

LSD:低关键字优先;链式基数排序;lst.remove();取出和删除表头元素2014-12-12按照关键字为依据进行分组的排序方法,有MSD和LSD两种方案。其中,LSD方案很特别,适合多关键字,只通过分配与收集即可完成排序。LSD首先的分组的组位置就已经排好了,再一个先从低关键字开始,最后高关键字将是主导作用;可以拆分关键字使用LSD方案,反复进行分配和收集的排序方法。通过链表的使用降低了排序期间对内存的消耗。import java.util.Lin...
Mapreduce实现矩阵乘法的算法思路

Mapreduce实现矩阵乘法的算法思路

Mapreduce实现矩阵乘法的算法思路2014-12-12大数据计算中经常会遇到矩阵乘法计算问题,所以Mapreduce实现矩阵乘法是重要的基础知识,下文我尽量用通俗的语言描述该算法。1.首先回顾矩阵乘法基础矩阵A和B可以相乘的前提是,A的列数和B的行数相同,因为乘法结果的矩阵C中每一个元素Cij,是A的第i行和B的第j列做点积运算的结果,参见下图:2.进入正题在了解了矩阵乘法规则后,我们打算采用分布式计算模型Mapreduce来完成这一过程。MR过程是...
数字转人民币大写算法的使用例子

数字转人民币大写算法的使用例子

数字转人民币大写算法的使用例子2014-12-12闲来无事,一时心血来潮,写了个数字转人民币大写的例子。其中主要的难点是“0”在不同位置,处理的方式有所不同。这里考虑的是整数位为最多12位,小数位2位的通用数字。也就是最小值0.00,最大值为999999999999.99。从左往右看,首先数字在整数部第4位,第8位与第12位为“0”时,不应转化为大写“零”。而在小数部的第2位也不应为零...
Dijkstra算法(一) C语言详解

Dijkstra算法(一) C语言详解

Dijkstra算法(一) C语言详解2014-12-12迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的...
Dijkstra算法(二) C++详解

Dijkstra算法(二) C++详解

Dijkstra算法(二) C++详解2014-12-12迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶...
Dijkstra算法(三) Java详解

Dijkstra算法(三) Java详解

Dijkstra算法(三) Java详解2014-12-12迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径...
最短路径之Dijkstra算法

最短路径之Dijkstra算法

最短路径之Dijkstra算法2014-12-12Dijkstra算法:首先,引进一个辅助向量D,它的每个分量D[i]表示当前所找到的从始点v到每个终点vi的的长度:如D[3]=2表示从始点v到终点3的路径相对最小长度为2。这里强调相对就是说在算法过程中D的值是在不断逼近最终结果但在过程中不一定就等于长度。它的初始状态为:若从v到vi有弧,则D为弧上的权值;否则置D为∞。显然,长度为 D[j]=Min{D | vi∈V} 的路径就是从...
Prim算法(一) C语言详解

Prim算法(一) C语言详解

Prim算法(一) C语言详解2014-12-15普里姆算法介绍普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。基本思想对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有uU,v(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,直到U=V为止,...
Prim算法(二) C++详解

Prim算法(二) C++详解

Prim算法(二) C++详解2014-12-15普里姆算法介绍普里姆(Prim)算法,是用来求加权连通图的最小生成树的算法。基本思想对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有uU,v(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,直到U=V为止,最小生成树构造完毕,这...
Prim算法(三) Java详解

Prim算法(三) Java详解

Prim算法(三) Java详解2014-12-15普里姆算法介绍普里姆(Prim)算法,是用来求加权连通图的最小生成树的算法。基本思想对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有uU,v(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,直到U=V为止,最小生成树构造完毕,...
Kruskal算法(一) C语言详解

Kruskal算法(一) C语言详解

Kruskal算法(一) C语言详解2014-12-15最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。具体做法:首先构造一个只...
Kruskal算法(二) C++详解

Kruskal算法(二) C++详解

Kruskal算法(二) C++详解2014-12-15最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。具体做法:首先构造一个只...
<< 231 232 233 234 235 236 237 238 239 240 >>