Welcome 微信登录

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

邻接矩阵(以顶点为中心),比较稀疏时,采用邻接表;图的两种遍历

邻接矩阵(以顶点为中心),比较稀疏时,采用邻接表;图的两种遍历

邻接矩阵(以顶点为中心),比较稀疏时,采用邻接表;图的两种遍历2014-12-10 csdn博客 u010026901对于边比较稠密的图,可以采用邻接矩阵(以顶点为中心)的方式表示,而边比较稀疏时,采用邻接表的结构更合适。两种都不能直观表达哪两个点相连或者最短路径是什么。深度优先遍历类似于树的先根序遍历。与树不同的是,它需要对已经访问过的节点添加标记以免被重复遍历。public class Depth {/** * 对k号节点深度遍历 * @param a...
链表或字符串模拟加法、加一及乘法

链表或字符串模拟加法、加一及乘法

链表或字符串模拟加法、加一及乘法2014-12-10 博客园 z陵链表模拟加法/字符串模拟二进制加法/数组模拟加一操作/打印1到最大的n位数/字符串模拟乘法============================================Add Two Numbers两个链表代表两个数字,每个结点的值都是一位数字,单链表逆序存放这两个数字,构造出一个新的链表,代表这两个链表的和。链表的尾插法,头结点dummy结点的运用,统一对prev指针的操作,/*...
并查集(Disjoint Set)

并查集(Disjoint Set)

并查集(Disjoint Set)2014-12-10 cnblogs codingwu在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在规定的运行时间(1~3秒)内计算出...
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为止,最小生成树构造完毕,这...
<< 111 112 113 114 115 116 117 118 119 120 >>