1. 图 定义 :图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合. 简单点的说:图由节点和边组成。一个节点可能与众多节点直接相连,这些节点被称为邻居。 如二叉树就为一个简单的图: 更加详细的信息可参 ...
分类:
编程语言 时间:
2018-01-03 17:32:49
阅读次数:
207
1. PCIE扫描过程从按下PC的电源按钮开始,BIOS就接管系统控制权开始工作,它会先进行一些内存和设备的初始化工作(当然,也包括PCI设备),由于商业上的原因,Phoenix等厂商的BIOS代码需要授权协议,下面以另外一款开源BIOS(openbios)为例,来剖析BIOS中,PCIe设备是如何被找到以及初始化的。PCI设备的扫描是基于深度优先搜索算法(DFS:Depth First Sear
分类:
其他好文 时间:
2017-12-26 17:54:44
阅读次数:
302
给公司的同事做了一个算法的分享,这是一些总结的资料。 我只是讲了快速排序、堆排序、归并排序、二分查找等简单的c#实现,蚂蚁算法及算法在生活中的意义! 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比 ...
分类:
编程语言 时间:
2017-12-19 00:50:48
阅读次数:
210
采用解空间搜索的深度优先搜索(最小代价优先)加约束传播算法来解数独 ...
分类:
编程语言 时间:
2017-12-13 23:50:41
阅读次数:
281
要求: 写出附从每个顶点出发的一次深度优先搜索遍历序列。 在纸上画出遍历过程和序列,提交截图,注意写上学号和姓名。 过程: 从图中某个顶点发A 出发,访问此顶点,然后依次从A 的未被访问的邻接点出发,直至图中所有和A 有路径相通的顶点都被访问到; 若此时图中尚有顶点未被访问,则另选图中一个未曾被访问 ...
分类:
其他好文 时间:
2017-12-10 14:30:57
阅读次数:
158
要求 写出附从每个顶点出发的一次深度优先搜索遍历序列。 在纸上画出遍历过程和序列,提交截图,注意写上学号和姓名。 过程 从顶点A出发,访问顶点并标记为已访问 访问A的邻接点,如果没有访问过,访问该顶点并标记为已访问,然后再访问该顶点的邻接点,递归。如果该顶点已访问过,退回上一个顶点,再检查该顶点的邻 ...
分类:
其他好文 时间:
2017-12-09 13:09:19
阅读次数:
161
【问题描述】 给定一个有向图,要求使用深度优先搜索策略,判断图中是否存在环。 1 package org.xiu68.exp.exp9; 2 3 public class Exp9_1 { 4 5 //用深度优先搜索判断图中是否存在环 6 public static void main(String ...
分类:
其他好文 时间:
2017-12-05 18:44:32
阅读次数:
150
Tarjan算法用于寻找图G(V,E)中的所有强连通分量,其时间复杂度为O(|V|+|E|)。 所谓强连通分量就是V的某个极大子集,其中任意两个结点u,v在图中都存在一条从u到v的路径。 Tarjan的算法的流程是通过深度优先搜索遍历每个顶点,并且维护以下属性dfn,low,instk,p其中dfn ...
分类:
编程语言 时间:
2017-11-29 00:07:16
阅读次数:
302
1 在算法中栈和队列的地位 在算法中,栈和队列就是一个缓存,缓存那些对自己还有用的元素,还不用扔掉的元素。 比如对图的深度优先搜索,搜到某一层时,还只是访问了该元素的一个邻接节点时,是不能随便扔出栈的,因为可能它还有其它的邻接节点,首先它自己肯定是已经被访问了的,但是如果把它扔了,它的其它邻接节点也 ...
分类:
其他好文 时间:
2017-11-28 21:56:05
阅读次数:
151
参考http://segmentfault.com/a/1190000003787462 找出所有的可能,必然是深度优先搜索。但是每轮搜索如何建立临时的字符串呢?因为数是“对称”的,我们插入一个字母就知道对应位置的另一个字母是什么,所以我们可以从中间插入来建立这个临时的字符串。这样每次从中间插入两个 ...
分类:
其他好文 时间:
2017-11-27 13:28:17
阅读次数:
101