精华内容
下载资源
问答
  • 图算法领域10大经典算法

    万次阅读 2017-12-26 21:41:07
    1、本文囊括了图算法领域中的全部20个重要算法,并从中甄选出了此十大算法。 2、此十大算法的评选是以我个人之见而选,其它虽未囊括于10之内,但都在本文中有所提到。 ------------------------------------------...
    作者:July   二零一一年二月十四日。
    参考:
    维基百科、本BLOG 内经典算法研究系列10篇文章。

    博主说明:
    1、本文囊括了图算法领域中的全部20个重要算法,并从中甄选出了此十大算法。
    2、此十大算法的评选是以我个人之见而选,其它虽未囊括于10之内,但都在本文中有所提到。
    -------------------------------------------


    第一章、基本遍历
    一、深度优先搜索
    二、广度优先搜索
    此图遍历中最基本的俩种算法,BFS,DFS,入选本图算法十大算法,自是无可争议。
    因为,这俩种搜索算法,应用实为广泛而重要。

    关于此BFS、DFS算法,更多,请参考:
    经典算法研究系列:四、教你通透彻底理解:BFS和DFS优先搜索算法
    http://blog.csdn.net/v_JULY_v/archive/2011/01/01/6111353.aspx

    三、A*搜索算法
    DFS和BFS在展开子结点时均属于盲目型搜索,也就是说,
    它不会选择哪个结点在下一次搜索中更优而去跳转到该结点进行下一步的搜索。
    在运气不好的情形中,均需要试探完整个解集空间, 显然,只能适用于问题规模不大的搜索问题中。

    A*算法,作为启发式算法中很重要的一种,被广泛应用在最优路径求解和一些策略设计的问题中。
    而A*算法最为核心的部分,就在于它的一个估值函数的设计上:
        f(n)=g(n)+h(n)
    其中f(n)是每个可能试探点的估值,它有两部分组成:
    一部分,为g(n),它表示从起始搜索点到当前点的代价(通常用某结点在搜索树中的深度来表示)。
    一部分,即h(n),它表示启发式搜索中最为重要的一部分,即当前结点到目标结点的估值。

    更多,请参考:
    经典算法研究系列:一、A*搜索算法
    http://blog.csdn.net/v_JULY_v/archive/2010/12/23/6093380.aspx

    附:
    Flood Fill
    LeeMaRS、wtzyb4446
    图形学中Flood Fill是满水法填充,是用来填充区域的。
    就好比在一个地方一直到水,水会往四周满延开,直到高地阻挡。

    Flood Fill就是从一个点开始往四周寻找相同的点填充,直到有不同的点为止。
    我们用的Flood Fill和这个差不多原理,就是BFS的一种形式.

    假设在(i,j)滴好大一滴红墨水,然后水开始漫开,向它的上下左右染色,也就是(i-1,j),(i+1,j),(i,j-1),(i,j+1)这四个点.然后在分别再从这四个点开始向周围染色...直到碰到某种边界为止.

    把这个转化为BFS的思想,就是队列中初始元素是(i,j),然后把(i,j)扩展状态,得到(i-1,j),(i+1,j),(i,j-1),(i,j+1)这四个状态,加入队列.把(i,j)出列,继续扩展下一个结点...如此


    第二章、最短路径算法
    四、Dijkstra
    Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),
    算法解决的是有向图中单个源点到其他顶点的最短路径问题。

    此Dijkstra 算法已在本BLOG内俩篇文章中,有所具体阐述,请参见:
    I、经典算法研究系列:二、Dijkstra 算法初探
    http://blog.csdn.net/v_JULY_v/archive/2010/12/24/6096981.aspx
    II、经典算法研究系列:二之续、彻底理解Dijkstra算法
    http://blog.csdn.net/v_JULY_v/archive/2011/02/13/6182419.aspx

    五、Bellman-Ford
    Bellman-Ford:
    求单源最短路,可以判断有无负权回路(若有,则不存在最短路),
    时效性较好,时间复杂度O(VE)。

    附:
    SPFA:
    是Bellman-Ford的队列优化,时效性相对好,时间复杂度O(kE)。(k<<V)。


    六、Floyd-Warshall
    Floyd-Warshall:求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。此算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。

    更多,请参考:
    几个最短路径算法比较:
    http://blog.csdn.net/v_JULY_v/archive/2011/02/12/6181485.aspx

    附:Kneser图
    Kneser图是与图的分数染色有关的算法。
    给定正整数a,b,a≥2b,Kneser图Ka:b是以如下方式定义的一个图:
    其顶点是从给定的a个元素的集合中选出的b个元素构成的子集,两顶点间有边当且仅当这两个顶点为不交的集合。
     

    第三章、最小生成树
    七、Prim
    八、Kruskal
    此最小(权值)生成树的俩种算法,日后,会在本BLOG内 具体而深入阐述。
     

    第四章、图匹配
    九、匈牙利算法 
    匈牙利算法是众多用于解决线性任务分配问题的算法之一,是用来解决二分图最大匹配问题的经典算法,可以在多项式时间内解决问题,由匈牙利数学家Jack Edmonds于1965年提出。
    这个算法,比较生疏,下面,稍微阐述下:

    I、匈牙利算法应用问题的描述:
    设G=(V,E)是一个无向图。如顶点集V可分区为两个互不相交的子集V1,V2之并,并且图中每条边依附的两个顶点都分属于这两个不同的子集。则称图G为二分图。二分图也可记为G=(V1,V2,E)。

    给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配。 选择这样的子集中边数最大的子集称为图的最大匹配问题(maximal matching problem)

    如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备,完美匹配。

    II、算法描述
    求最大匹配的一种显而易见的算法是:先找出全部匹配,然后保留匹配数最多的。但是这个算法的时间复杂度为边数的指数级函数。因此,需要寻求一种更加高效的算法。

    下面介绍用增广路求最大匹配的方法(称作匈牙利算法,匈牙利数学家Edmonds于1965年提出)。
    增广路的定义(也称增广轨或交错轨):
    若P是图G中一条连通两个未匹配顶点的路径,并且属于M的边和不属于M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。

    由增广路的定义可以推出下述三个结论:
    1-P的路径长度必定为奇数,第一条边和最后一条边都不属于M。
    2-将M和P进行异或操作(去同存异)可以得到一个更大的匹配M’。
    3-M为G的最大匹配当且仅当不存在M的增广路径。

    算法轮廓:
    (1)置M为空
    (2)找出一条增广路径P,通过异或操作获得更大的匹配M’代替M
    (3)重复(2)操作直到找不出增广路径为止

    III、时间复杂度与空间复杂度
    时间复杂度
    邻接矩阵:最坏为O(n^3)      邻接表:O(mn)   
    空间复杂度:
    邻接矩阵:O(n^2)            邻接表:O(m+n)

    附:
    Edmonds's matching


    第五章、强连通分支算法与网络流
    十、Ford-Fulkerson
    最大流量算法(Ford-Fulkerson Algorithm),
    也叫做贝尔曼-福特算法,被用于作为一个距离向量路由协议例如RIP, BGP, ISO IDRP, NOVELL IPX的算法。

    附:Edmonds-Karp、Dinic、Push-relabel、maximum flow

    强连通分支算法
    Kosaraju、 Gabow、 Tarjan。
    此类算法,日后阐述。
    完。


    本人July对本博客所有任何文章、内容和资料享有版权。
    转载务必注明作者本人及出处,并通知本人。July、二零一一年二月十四日
    展开全文
  • 图像算法工程师三重境界

    千次阅读 2016-05-10 11:17:29
    一、传统图像算法工程师;二、现代图像算法工程师;三、人工智能时代图像算法工程师

    一、传统图像算法工程师:
    主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法、去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测;

    二、现代图像算法工程师:
    涉及模式识别,主要表现的经验为AdaboostSVM、聚类分析等研究与应用,特征选取与提取,包括智能驾驶的研究与应用、行人检测、人脸识别、物体检测、工业检测;

    三、人工智能时代图像算法工程师:
    深度学习,主要在大型互联网公司或者研究所机构,具体体现在TensorFlow、Pytorch等开源库的研究与应用,包括机器人的研、基于深度学习的人脸识别;
    移动端图像算法开发,很有挑战和价值,可以研究NCNNNEON优化

    展开全文
  • 基本图算法时间复杂度

    千次阅读 2016-06-05 12:18:02
    基本图算法时间复杂度
    算法 邻接矩阵存储 邻接表存储 边集数组(三元组)
    Prime O(n^2) O(n+e)
    Kruskal O(n+e)
    Dijkstra O(n^2)
    Floyd O(n^2)
    拓扑排序 O(n+e)
    关键路径 O(n+e)
    展开全文
  • 常用算法-路径搜索算法(图算法)20.1 BFS与DFS 最大流最小割定理,最大流问题,最小生成树问题,Prim算法,Dijkstra算法是典型的单源最短路径算法。Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以...

    【C++研发面试笔记】20. 常用算法-路径搜索算法(图算法)

    20.1 BFS与DFS

    • BFS:这是一种基于队列这种数据结构的搜索方式,它的特点是由每一个状态可以扩展出许多状态,然后再以此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都已处理完毕。
    • DFS:基于递归的搜索方式,它的特点是由一个状态拓展一个状态,然后不停拓展,直到找到目标或者无法继续拓展结束一个状态的递归。

    BFS:对于解决最短或最少问题特别有效,而且寻找深度小,但缺点是内存耗费量大(需要开大量的数组单元用来存储状态)。
    DFS:对于解决遍历和求所有问题有效,对于问题搜索深度小的时候处理速度迅速,然而在深度很大的情况下效率不高。
    总结:不管是BFS还是DFS,它们虽然好用,但由于时间和空间的局限性,以至于它们只能解决数据量小的问题。
    这里写图片描述


    20.2 Floyd

    求多源、无负权边的最短路。用矩阵记录图。时效性较差。
    Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。边权可正可负。此算法简单有效,由于三重循环结构紧凑,对于稠密图,效率要高于执行|V|次Dijkstra算法,也要高于执行V次SPFA算法。

    20.2.1 算法思想原理

    Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在)
    从任意节点i到任意节点j的最短路径不外乎2种可能:

    1. 直接从i到j;
    2. 从i经过若干个节点k到j。

    假设Dis(i,j)为节点i到节点j的最短路径的距离。

    1. 对于每一个节点k,我们检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立。
    2. 如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j) = Dis(i,k) + Dis(k,j)。
    3. 这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。

    20.2.2 算法描述

    1. 从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。   
    2. 对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它。

    20.2.3 具体实现

    这里写图片描述


    20.3 Dijkstra

    Dijkstra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。注意该算法要求图中不存在负权边。
    问题描述:在无向图 G=(V,E) 中,假设每条边 E[i] 的长度为 w[i],找到由顶点 V0 到其余各点的最短路径。(单源最短路径)

    20.3.1算法思想

    设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组:
    第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了);
    第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。
    在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。
    每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。

    20.3.2 算法步骤

    1. 初始时,S只包含源点,即S={v},v的距离为0。U包含除v外的其他顶点,即:U={其余顶点},若v与U中顶点u有边,则

    20.3.3 具体实现

    这里写图片描述
    这里写图片描述


    20.4 Bellman-Ford

    Dijkstra算法无法判断含负权边的图的最短路。如果遇到负权,在没有负权回路存在时(负权回路的含义是,回路的权值和为负。)即便有负权的边,也可以采用Bellman - Ford算法正确求出最短路径。
    Bellman-Ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写。其原理为持续地进行松弛,可以在更普遍的情况下(存在负权边和环路的情况)解决单源点最短路径问题。对于给定的带权(有向或无向)图 G=(V,E), 其源点为s,加权函数 w是 边集 E 的映射。对图G运行Bellman - Ford算法的结果是一个布尔值,表明图中是否存在着一个从源点s可达的负权回路。若不存在这样的回路,算法将给出从源点s到 图G的任意顶点v的最短路径d[v]。
    Bellman-Ford算法是求解单源最短路径问题的一种算法。

    20.4.1 适用范围

    1. 单源最短路径(从源点s到其它所有顶点v);
    2. 有向图&无向图(无向图可以看作(u,v),(v,u)同属于边集E的有向图);
    3. 边权可正可负(如有负权回路输出错误提示);
    4. 差分约束系统;

    20.4.2 算法描述

    1. 初始化:将除源点外的所有顶点的最短距离估计值 d[v] ←+∞, d[s] ←0;
    2. 迭代求解:反复对边集E中的每条边进行松弛操作,使得顶点集V中的每个顶点v的最短距离估计值逐步逼近其最短距离;(运行|v|-1次)
    3. 检验负权回路:判断边集E中的每一条边的两个端点是否收敛。如果存在未收敛的顶点,则算法返回false,表明问题无解;否则算法返回true,并且从源点可达的顶点v的最短距离保存在 d[v]中。

    20.4.3 具体实现

    这里写图片描述
    上面的代码有些问题!

    考虑:为什么要循环V-1次?因为最短路径肯定是个简单路径,不可能包含回路的,如果包含回路,且回路的权值和为正的,那么去掉这个回路,可以得到更短的路径。如果回路的权值是负的,那么肯定没有解了。图有n个点,又不能有回路,所以最短路径最多n-1边,又因为每次循环,至少relax一边,所以最多n-1次就行了。


    20.5 SPFA

    与Bellman-ford算法类似,SPFA算法采用一系列的松弛操作以得到从某一个节点出发到达图中其它所有节点的最短路径。所不同的是,SPFA算法通过维护一个队列,使得一个节点的当前最短路径被更新之后没有必要立刻去更新其他的节点,从而大大减少了重复的操作次数。
    SPFA算法可以用于存在负数边权的图,这与dijkstra算法是不同的。
    与Dijkstra算法与Bellman-ford算法都不同,SPFA的算法时间效率是不稳定的,即它对于不同的图所需要的时间有很大的差别。
    在最好情形下,每一个节点都只入队一次,则算法实际上变为广度优先遍历,其时间复杂度仅为O(E)。另一方面,存在这样的例子,使得每一个节点都被入队(V-1)次,此时算法退化为Bellman-ford算法,其时间复杂度为O(VE)。
    SPFA算法在负边权图上可以完全取代Bellman-ford算法,另外在稀疏图中也表现良好。但是在非负边权图中,为了避免最坏情况的出现,通常使用效率更加稳定的Dijkstra算法,以及它的使用堆优化的版本。通常的SPFA算法在一类网格图中的表现不尽如人意。
    这里写图片描述


    20.6 最大流问题

    最大流问题主要解决这样一类问题:

    在一个有向图中,有一个源点s和一个汇点t,图内每个相邻边都有一个容量(表示从一点流向另一点的最大量),我们要找到从源点s流向汇点t的最大流量。我们可以将边视为管道,每条管道都有其最大容量,而我们要求的就是从s流向t的最大流量。
    这里写图片描述
    下图是上图的一个最大流
    这里写图片描述

    20.6.1 流网络定义

    如上图流网络可以定义为G(V,E),已知图内结点v,u∈V,f(v,u)表示从v流向u的流量,c(v,u)表示能从v流向u的最大流量(容量)。对于流网络有主要有性质:
    这里写图片描述

    20.6.2 Ford-Fulkerson算法

    Ford-Fulkerson算法的思想:迭代求残存网络,找到残存网络的一条增广路径,然后将增广路径加入到流量网络中,直到找不到这样一条增广路径为止。
    如下图所示,左图为流网络G,每条边标识了流量/容量,右图是一个残存网络,图中阴影路径是一条增广路径。
    这里写图片描述

    残存网络:
    给定流网络G和流量f,Gf表示流网络G中仍可以调整的边结构。
    残存网络Gf由残存容量构成,残存容量cf(v,u)表示某条边E(v,u)还能容纳的流量。其定义为:
    这里写图片描述
    可以看出残存网络Gf中的边包含两条边。

    增广路径:
    给定流网络G,流量f和残存网络Gf,增广路径表示在残存网络Gf中从源点s到汇点t的一条简单路径。
    这里写图片描述

    网络切割:
    这里写图片描述

    具体算法:
    这里写图片描述


    20.7 最小生成树问题

    对于一连通的无向图G(V,E)来说,图内每条边(v,u)∈E,都有一个权值。找到无环子集就所有的结点都相连起来,且使得权重和最小,这样的问题就是最小生成树问题。下图描述了一个最小生成树:
    这里写图片描述
    最小生成树都是要
    解决最小生成树问题主要有Kruskal和Prim算法两种。

    20.7.1 Kruskal算法

    Kruskal算法找到安全边的方法,是在所有连接森林中不同两棵树的边中,找到最小的边加入,两棵新树也形成了一棵新树。显然这一类贪心算法。
    具体伪代码(这里要改为FIND-SET(v)≠FIND-SET(u),表示边的两个结点分别在不同两棵树中)
    这里写图片描述

    20.7.1 Prim算法

    Prim算法同Dijkstra算法类似,其从某一源点出发,维持一个集合A(A内结点构成一棵树),算法每次选择从A出发到A外的结点中的一条权重最小的边,然后将这条边加入集合A中。
    具体伪代码:
    这里写图片描述

    这篇博文是个人的学习笔记,内容许多来源于网络(包括CSDN、博客园及百度百科等),博主主要做了微不足道的整理工作。由于在做笔记的时候没有注明来源,所以如果有作者看到上述文字中有自己的原创内容,请私信本人修改或注明来源,非常感谢>_<

    展开全文
  • 10种图算法直观可视化解释

    千次阅读 2020-08-31 09:23:04
    快速介绍10个基本的图算法,并举例和可视化 图已经成为一种强大的建模和捕获真实场景中的数据的手段,比如社交媒体网络、网页和链接,以及GPS中的位置和路线。如果您有一组相互关联的对象,那么您可以使用图来表示...
  • 谈到图算法和广度优先搜索,我认为首先要明白这两种算法是用来干嘛的。在这里我引用《算法图解》一书举的一个很经典的例子来讲解。 很多时候我们希望能够找出两样东西之间的最短距离,这里的距离不是单单是相距多少...
  • Wiki《算法导论》从22章开始图算法。但是Java JDK中没有Graph相关的库,自己实现的话可维护性较差。 JGraphT是一个开源的图理论数据结构和算法的开源库。可以在学习《算法导论》的同时学习该库,同时可以基于该库...
  • 图像算法、深度学习总结

    千次阅读 热门讨论 2018-07-07 16:35:07
    一篇博客,来结束自己这几年来图像算法的职业生涯 总的来说,图像算法、深度学习,前景不是很明朗。研究生做这个挺多的,因为大家要发论文,需要一些算法。并且,图像发论文比较容易,也就好毕业... 首先说说,...
  • 图形算法:圆形生成算法

    万次阅读 2016-10-17 08:40:52
    在本章内容中,我们将会介绍三种常用的圆形生成算法:**勾股定理算法**、**极坐标算法**和**中点圆算法**。 [toc] #一、算法导论 --- ##1.1 四分法与八分法 > 由于圆具有对称性,只计算圆上一部分的值,再通过对称...
  • 图像算法---磨皮算法研究汇总

    千次阅读 2016-03-09 16:57:12
    图像算法---磨皮算法研究汇总 发表于2016/1/11 15:35:04 4832人阅读 分类: 数字图像处理研究 写这篇博客,也是对自己这段时间关于磨皮算法内容研究做个小结。 目前,对于人脸磨皮算法,大家并不陌生...
  • neo4j使用图算法(Graph Algorithms)支持算法中心度算法(Centralities)社区发现算法(Community detection)路径分析算法(Path finding)相似度算法(Similarity)链接预测算法(Link Prediction)预处理算法...
  • 利用图算法实现金融行业风控

    千次阅读 2017-02-13 16:25:20
    摘要: 本文将针对阿里云平台上图算法模块来进行实验。图算法一般被用来解决关系网状的业务场景。与常规的结构化数据不同,图算法需要把数据整理成首尾相连的关系图谱。图算法更多的是考虑边和点的概念。阿里云机器...
  • 算法之经典图算法

    万次阅读 多人点赞 2017-11-14 11:38:55
    介绍 :是一个顶点集合加上一个连接不同顶点对的边的集合组成。定义规定不允许出现重复边(平行边)、连接到顶点自身的边(自环),定义了一个简单。 自环:连接到顶点自身的边。 平行边:连接同一对...
  • 图像算法研究---背景虚化算法

    万次阅读 热门讨论 2017-07-24 20:18:31
    本文在抠图算法基础上,实现了一种如何实现单反背景虚化效果的算法,更具单反的真实感,跟大家分享一下!
  • DM8168集成图像算法

    千次阅读 2013-09-26 10:35:32
    分别为DM86168的软件开发框图(a),以及基于eXpressDSP算法开发框图(b)。   (a)  从(a)中我们知道DM8168是一个多核架构的CPU。它集成了ARM A8核作为HOST CPU,用作主系统控制,图形界面,基本输入/输出I
  • 今天特别感慨,自己从决定研究图像处理,势必要做出一键修图算法。 经历了,三个多月的书籍积累,三个多月的算法调整以及优化。 人是一种奇怪的动物,当你做不到的时候,你以为做到了,自己会感觉很爽,很有成就感...
  • 图像算法---表面模糊算法

    万次阅读 2015-11-16 13:00:04
    本文介绍了PS中的表面模糊算法原理,跟大家分享一下!
  • 图算法》第五章 中心性算法-1

    千次阅读 2019-08-28 16:50:55
    中心性算法(centrality algorithm)用于理解中特定节点的角色及其对网络的影响。之所以有用,是因为这些算法能够识别最重要的节点,并帮助我们了解群体动态,例如可信度、可访问性、事物传播的速度以及群体之间的...
  • 本文介绍了一种简单的基于均值 滤波算法的锐化算法,并给出了DEMO,跟大家 分享一下,希望大家喜欢!
  • 图算法在反欺诈中的应用

    千次阅读 2020-12-14 10:43:38
    是表示事物之间关联关系的有效方式,包括节点和边。节点是一种实体,可以是账号,也可以是设备、手机号等,而边表示这些节点之间的关联关系,比如某个账号使用过某台设备,就可以在对应的账号和设备节点之间建立一...
  • 图算法系列之最短路算法Dijkstra(Java)

    千次阅读 2017-04-08 22:06:15
    引言 假如你有一张地图,地图上给出了每一对相邻城市的距离,从一个地点到另外一个地点,如何找到一条最短的路? 最短路算法要解决的就是这类问题。...给定一个有(无)向,每一条边有一个权值 w,给定一个起始
  • 简洁明了的拓扑图算法讲解

    千次阅读 2018-08-11 12:27:23
    算法思想:类似于二叉树的层次遍历,遍历所有结点,将入度为0的结点存在一个栈中,依次输出栈内的各个结点时,将每个节点的子节点的度减1,然后将其中度为0的结点存入栈中,循环执行上述操作,直到所有结点遍历完。...
  • 2.3 特征计算方法——积分 三、选取弱分类器 四、级联成强分类器 五、检测 六、OpenCV算法实现 一、AdaBoost算法原理 AdaBoost算法是一种迭代的算法,对于一组训练集,通过改变其中每个样本的分布概率...
  • 彩图转灰度图算法

    千次阅读 2012-07-29 20:26:28
    今天试了下一个前辈的ndk彩图转灰度算法,有点小瑕疵,于是就剖析了下这个算法。 核心代码如下 int alpha = 0xFF ; for (int i = 0; i ; i++) { for (int j = 0; j ; j++) { // 获得像素的颜色 ...
  • 图像算法工程师——面试经验

    万次阅读 多人点赞 2018-10-09 21:13:34
    4.3A算法,图像降噪,ISP算法,bm3d算法原理,相机传感器传输的格式 5.机器学习实现车牌识别 6.c++中,子类如何实现初始化父类的 7.有学过Java吗,JavaScript呢 8.红黑树,二叉平衡树的原理和应用 。...
  • Graph Algorithms(图算法

    千次阅读 2018-05-31 00:09:26
    (u,v)是有向中的边,我们就称顶点v领接顶点u。 从顶点u到顶点v的路径是顶点序列&amp;amp;lt;v0,v1,v2...vk&amp;amp;gt;,其中v0 = v,vk=u。路径中的顶点是唯一的,则称路径是简单的。起点和终点一致则...
  • Neo4j中的图算法:图分析的力量

    千次阅读 2018-10-25 16:32:01
    网络科学与图形模型的兴起 ...图算法在图形分析中起着强大的作用,本系列文章的目的就是展示这个角色。在我们的下一篇文章中,我们将回顾一下图表分析作为一个整体的兴起及其在探索连接数据方面的许多应用。
  • 图像算法工程师 笔试题集锦

    万次阅读 2018-03-22 15:34:27
    1.嵌入式编程中,什么是大端,什么是小端? 大端模式,是指数据的高位保存在内存的低地址中,而...3.图像插值算法有哪些? 最邻近插值,线性插值,双线性插值,双三次插值,三线性卷积插值。 4.比较字符串 不定期更新。
  • 图像算法---白平衡AWB(讲的很好)

    万次阅读 多人点赞 2016-02-05 13:57:37
    本文转载wzwxiaozheng的白平衡算法,主要包括两部分:色温曲线和色温计算。... 1,白平衡算法---色温曲线 本文大体讲解了白平衡的算法...一般情况下要实现AWB算法需要专业的图像和算法基础,本文力图通过多的方式,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,696,972
精华内容 678,788
关键字:

图算法