1.Python 2.x版本默认旧式类,通过继承object为新式类 2.新式类广度搜索继承,旧式类深度搜索继承 3.__new__方法 4.统一了类x.__class__和类型(type(x)) 5.增加了__slots__,去除了__dict__属性(用来记录实例中属性和方法,让实例绑定任意属性 ...
分类:
编程语言 时间:
2017-09-02 11:32:54
阅读次数:
132
1. 求深度: recursive 遍历左右子树,递归跳出时每次加一。 2. 广度搜索 使用队列 3. 二叉查找树 由于二叉查找树是递归定义的,插入结点的过程是:若原二叉查找树为空,则直接插入;否则,若关键字 k 小于根结点关键字,则插入到左子树中,若关键字 k 大于根结点关键字,则插入到右子树中。 ...
分类:
其他好文 时间:
2017-07-25 19:42:08
阅读次数:
151
图来自啊哈算法 这里描述的问题就是如何从1,1走到4,3 这里有两个解决方案,一个是用深度优先算法 初始化地图,和标记点 定义每次走的方向 2.广度搜索,所谓的广度搜索呢,就是每次把能走的全部走光 定义基本的结构,用来保存数据 具体实现 执行结果 ...
分类:
其他好文 时间:
2017-06-08 15:52:32
阅读次数:
217
一、深度优先搜索DFS 深度优先搜索DFS的关键思想是:当下应该怎么做(每个方法都试一遍),这一步解决后,进入下一步,下一步的解决方法和这一步的解决方法是一样的 DFS的基本模型 void dfs(int step) { 判断边界 尝试每一种可能 for(i=1;i<=n;i++) { 继续下一步 ...
分类:
其他好文 时间:
2017-06-06 22:18:33
阅读次数:
205
概述: 近期要学习写网络爬虫。所以把图的深度和广度搜索都再温习一下。 图结构展示: 实现过程: 首先,我们来看看图结构在代码中的实现。有三块逻辑: 1.图中的节点: public class GraphNode { public List<GraphEdge> edgeList = null; pr ...
分类:
编程语言 时间:
2017-05-27 10:47:45
阅读次数:
269
一、问题定义 我在网上找了些,关于二度人脉算法的实现,大部分无非是通过广度搜索算法来查找,犹豫深度已经明确了2以内;这个算法其实很简单,第一步找到你关注的人;第二步找到这些人关注的人,最后找出第二步结果中出现频率最高的一个或多个人(频率这块没完成),即完成。 但如果有千万级别的用户,那在运算时,就肯 ...
分类:
其他好文 时间:
2016-12-03 07:49:22
阅读次数:
405
题意:在n*m的图中‘#’表示草坪‘ . ’表示空地,可以选择在任意的两个草坪格子点火,火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧完所有的草坪花费时间最小。 分析:广度搜索,点火的格子可以为同一个。双循环遍历可以点火的草地,搜索得到每次烧完所用的步数,记录最小的一个。搜索是为了记录烧过 ...
分类:
其他好文 时间:
2016-10-31 00:46:01
阅读次数:
208
点 建立无权图,添加新的顶点,添加边,显示顶点,返回一个和v邻接的未访问顶点,无权图的深度搜索,广度搜索,基于深度搜索的最小生成树,删除顶点,有向图的拓扑排序 有向图的连通性,Warshall算法 主函数 ...
分类:
编程语言 时间:
2016-10-14 00:13:26
阅读次数:
215
在大三上学期刚开始的课程设计中,我想做一个简单的爬虫。后来有一个问题就是我想将爬取出的链接先放入一个缓冲区,满了之后再放入待爬取队列,以减少硬盘IO时间,可是这样有一个问题,那就是 最后一次爬取时缓冲区很可能满不了,或者做广度搜索时,第一层的链接根本就填不满缓冲区,这时候我怎么判断该直接将缓冲区的数
分类:
其他好文 时间:
2016-03-07 18:58:22
阅读次数:
134