05 2019 档案

摘要:一、概述 首先我们需要知道的是它是一个Set的实现,所以它其中存的肯定不是键值对,而是值。此实现与HashSet的不同之处在于,LinkedHashSet维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 看到上面的介绍,是不是感觉其与HashMa 阅读全文
posted @ 2019-05-31 17:08 亦海 阅读(482) 评论(0) 推荐(0)
摘要:排序 排序是日常工作和软件设计中常用的运算之一。为了提高查询速度需要将无序序列按照一定的顺序组织成有序序列。 排序的主要目的就是实现快速查找。 排序分类 增排序和减排序:如果排序的结果是按关键字从小到大的次序排列的,就是增排序,否则就是减排序。 稳定排序和不稳定排序:具有相同关键字的记录,经过排序后 阅读全文
posted @ 2019-05-31 17:03 亦海 阅读(1015) 评论(0) 推荐(0)
摘要:一、入门 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调的Apache项目。可用于服务发现,分布式锁,分布式领导选举,配置管理等。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册 阅读全文
posted @ 2019-05-30 22:04 亦海 阅读(226) 评论(0) 推荐(0)
摘要:一、概述 HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺序不同(除非在put的时候key已经按照hashcode排序好了,这种几率非常小) JAV 阅读全文
posted @ 2019-05-30 11:21 亦海 阅读(391) 评论(0) 推荐(0)
摘要:一、概述 和HashMap一样,Hashtable也是一个散列表,它存储的内容是键值对。 Hashtable在Java中的定义为: 从源码中,我们可以看出,Hashtable继承于Dictionary类,实现了Map, Cloneable, java.io.Serializable接口。其中Dict 阅读全文
posted @ 2019-05-29 09:36 亦海 阅读(272) 评论(0) 推荐(0)
摘要:一、概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 HashSet是基于HashMap来实现的,操作很简单,更像是对HashMap做了一次“封装”,而且只使用了HashMap的k 阅读全文
posted @ 2019-05-29 09:17 亦海 阅读(407) 评论(0) 推荐(0)
摘要:Map接口 java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。 Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的 阅读全文
posted @ 2019-05-29 08:51 亦海 阅读(18726) 评论(0) 推荐(1)
摘要:集合 Collection(有时候也叫container)是一个简单的对象, Java集合工具包位于Java.util包下,Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)。 阅读全文
posted @ 2019-05-28 14:21 亦海 阅读(410) 评论(0) 推荐(0)
摘要:引入 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题。 例如,对于搜索引擎的爬虫系统来说,收录重复的网页是毫无意义的,只会造成存储和计算资源的浪费; 同时,展示重复的信息对于用户来说也并不是最好的体验。造成网页近重复的可能原因主要包括: 镜像网站 内容复 阅读全文
posted @ 2019-05-27 16:04 亦海 阅读(556) 评论(0) 推荐(0)
摘要:引入 什么情况下需要布隆过滤器?我们先来看几个比较常见的例子: 字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能 这几个例子有一个共同的特点: 如何判断一个元素是否存在 阅读全文
posted @ 2019-05-27 15:34 亦海 阅读(433) 评论(0) 推荐(0)
摘要:Trie,又经常叫前缀树,字典树等等。它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree。当然很多名字的意义其实有交叉。 Trie树是一种非常重要的数据结构,它在信息检索,字符串匹配等领域有广泛的应用,同时,它也是很 阅读全文
posted @ 2019-05-27 09:22 亦海 阅读(1486) 评论(0) 推荐(1)
摘要:一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 Hash算法 一致性has 阅读全文
posted @ 2019-05-26 15:26 亦海 阅读(574) 评论(0) 推荐(0)
摘要:哈希表的概念 哈希表(Hash Table)是一种特殊的数据结构,它最大的特点就是可以快速实现查找、插入和删除。 我们知道,数组的最大特点就是:寻址容易,插入和删除困难;而链表正好相反,寻址困难,而插入和删除操作容易。那么如果能够结合两者的优点,做出一种寻址、插入和删除操作同样快速容易的数据结构,那 阅读全文
posted @ 2019-05-25 17:05 亦海 阅读(2917) 评论(0) 推荐(1)
摘要:B树 B-树,就是B树,B树的原英文名是B-tree,所以很多翻译为B-树,就会很多人误以为B-树是一种树、B树是另外一种树。其实,B-tree就是B树。 B-树的定义 B树(B-tree)是一种树状数据结构,是一种平衡的多路查找树,能够用来存储排序后的数据。这种数据结构能够让查找数据、循序存取、插 阅读全文
posted @ 2019-05-25 11:02 亦海 阅读(1605) 评论(0) 推荐(0)
摘要:我们知道,对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度O(log2n)同时也由此而决定。但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化成近似链或链,此时,其操作的时间复杂度将退化成线性的,即O( 阅读全文
posted @ 2019-05-24 20:18 亦海 阅读(1097) 评论(2) 推荐(0)
摘要:什么是倒排索引? 与倒排索引(反向索引)相反的是正向索引,例如书本的目录章节,然后根据章节(或者页码、章节等)定位内容,即是说通过key去找value,这就是正向索引。 而倒排索引被用来存储在全文搜索下某个单词在一个文档或一组文档中存储位置的映射。它是文档检索系统中最常用的数据结构。例如,根据内容关 阅读全文
posted @ 2019-05-23 21:31 亦海 阅读(620) 评论(0) 推荐(0)
摘要:目录 1、二叉排序树的定义 2、二叉排序树的查找 3、二叉排序树的插入与删除 4、二叉排序树的构造 5、二叉排序树的删除 定义 二叉排序树(Binary Sort Tree)又称为二叉查找树(Binary Search Tree)、二叉搜索树。 它是特殊的二叉树: 对于二叉树,假设x为二叉树中的任意 阅读全文
posted @ 2019-05-23 11:37 亦海 阅读(1271) 评论(0) 推荐(0)
摘要:最短路径 最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小,例:公交查询系统。 问题解法: 求从某个源点到其余各点的最短路 阅读全文
posted @ 2019-05-23 10:46 亦海 阅读(2518) 评论(0) 推荐(0)
摘要:有向无环图及其应用 一个无环的有向图称做有向无环图,简称DAG图。 DAG图是一类较有向树更一般的特殊有向图。 拓扑排序 通常我们把计划、施工过程、生产流程、程序流程等都当成一个工程,一个大的工程常常被划分成许多较小的子工程,这些子工程称为活动。这些活动完成时,整个工程也就完成了。 例,计算机专业学 阅读全文
posted @ 2019-05-21 16:58 亦海 阅读(2068) 评论(1) 推荐(0)
摘要:最小生成树 问题提出: 要在n个城市间建立通信联络网,城市间的通信线路造价不同,希望找到一种方案使得建立该通信网所需花费的总代价最小。 问题分析: n个城市间,最多可设置n(n-1)/2条线路; n个城市间建立通信网,至少需n-1条线路; 问题转化为:如何在可能的线路中选择n-1条,能把所有城市(顶 阅读全文
posted @ 2019-05-20 20:55 亦海 阅读(757) 评论(0) 推荐(0)
摘要:用队列结构实现栈结构 算法思想: 首先栈是先进后出的,而队列是先进先出的。 我们可以借助两个队列实现栈的结构。 1. 所有n个数据进队列A 2. 队A中的前n-1个数据进入队列B 3. 此时队列A中的数据即是最后进队的,将它出队,即是栈的后进先出。 算法实现: 用栈实现队列结构 算法思想: 首先栈是 阅读全文
posted @ 2019-05-20 11:28 亦海 阅读(347) 评论(0) 推荐(0)
摘要:一、类 类可以看成是创建对象的模板,它描述一类对象的行为和状态。创建对象也叫类的实例化。类必须先定义才能使用。 通过下面一个简单的类来理解下Java中类的定义: 一个类可以包含以下类型变量: 局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动 阅读全文
posted @ 2019-05-18 21:52 亦海 阅读(322) 评论(0) 推荐(0)
摘要:查找 基本概念 查找就是在数据集中找出一个“特定元素”。 查找表是由同一类型的数据元素(或记录)构成的集合。 查找表是一种以集合为逻辑结构、以查找为核心的数据结构。 关键字 有时候我们需要指定某数据项的值来查找,这就用到了关键字。 关键字是数据元素中某个数据项的值,用以标识一个数据元素。 若此关键字 阅读全文
posted @ 2019-05-17 17:52 亦海 阅读(802) 评论(0) 推荐(0)
摘要:图的遍历 1. 在图中有回路,从图中某一顶点出发访问图中其它顶点时,可能又会回到出发点,而图中可能还剩余有顶点没有访问到。 2. 我们可以设置一个全局型标志数组visited来标志某个顶点是否被访问过,未访问的值为0,访问过的值为1。 3. 图的遍历有两种方法:深度优先搜索遍历(DFS)、广度优先搜 阅读全文
posted @ 2019-05-16 12:02 亦海 阅读(1376) 评论(0) 推荐(0)
摘要:图的基本概念 图是由一个顶点集 V 和一个边集 E构成的数据结构。Graph=(V,E) 图中代表一条边的顶点的偶对如果无方向性,即无序,则称此图为无向图。 例: V={V1,V2,V3,V4,V5}; E={(V1,V2),(V1,V4), (V2,V3),(V3,V4), (V2,V5)} 在无 阅读全文
posted @ 2019-05-15 21:10 亦海 阅读(963) 评论(0) 推荐(0)
摘要:二叉树遍历的几种方法 存储结构: 遍历 树的遍历顺序是相对父结点来说的。 先序遍历: 先访问根结点,然后分别先序遍历左子树、右子树。 递归先序: 非递归先序: 1. p=根结点地址,初始化栈 2. while(p!=NULL || 栈不空) while(p!=NULL ) 访问p, p入栈, p=p 阅读全文
posted @ 2019-05-15 17:19 亦海 阅读(1038) 评论(0) 推荐(0)
摘要:线索二叉树 利用空指针域来真存放结点的前驱和后继信息 ♦ 定义: 前驱与后继:在二叉树的先序、中序或后序遍历序列中两个相邻的结点互称为~ 线索:指向前驱或后继结点的指针称为~ 线索二叉树:加上线索的二叉链表表示的二叉树叫~ 线索化:对二叉树按某种遍历次序使其变为线索二叉树的过程叫~ ♦ 实现: 在有 阅读全文
posted @ 2019-05-14 19:27 亦海 阅读(937) 评论(0) 推荐(0)
摘要:串的模式匹配算法 子串(模式串)的定位操作通常称为串的模式匹配。 这是串的一种重要操作,很多 软件,若有“编辑”菜单项的话, 则其中必有“查找”子菜单项。 串的顺序存储实现 BF算法设计思想: 将主串的第pos个字符和模式的第1个字符比较, 若相等,继续逐个比较后续字符; 若不等,从主串的下一字符( 阅读全文
posted @ 2019-05-13 22:19 亦海 阅读(757) 评论(0) 推荐(0)
摘要:树 树的表示方式有 二叉树 二叉树是另一种重要的树形结构,是度为2的有序树,它的特点是每个结点至多有两棵子树。 二叉树的递归定义 二叉树是n(n≥0)个结点的有限集。它或者是空集(n=0),或者同时满足以下两个条件: (1) 有且仅有一个根结点; (2) 其余的结点分成两棵互不相交的左子树和右子树。 阅读全文
posted @ 2019-05-13 22:19 亦海 阅读(684) 评论(0) 推荐(0)
摘要:使用Pandas进行数据预处理 数据清洗中不是每一步都是必须的,按实际需求操作。 内容目录 1、数据的生成与导入 2、数据信息查看 2.1、查看整体数据信息 2.2、查看数据维度、列名称、数据格式 2.3、查看数据特殊值和数值 2.3.1、查看空值 2.3.2、查看唯一值 2.3.3、查看数值 2. 阅读全文
posted @ 2019-05-09 15:04 亦海 阅读(6907) 评论(1) 推荐(1)
摘要:队列 队列的定义 队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。 队列的修改是依先进先出的原则进行的。 队列的基本操作 1.初始化队列 InitQueue(&Q) 将队列Q设置成一 阅读全文
posted @ 2019-05-09 12:00 亦海 阅读(1287) 评论(0) 推荐(0)
摘要:描述: 假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序任意,即([]())或[([][])]等都为正确的格式,而[(])为不正确的格式。利用栈编程序检验表达式中的括号是否合法。 思路: 1,先实现栈的基本操作:初始化,入栈,出栈等。 2,每读入一个括号,若是右括号,则或者是置于栈顶的左括 阅读全文
posted @ 2019-05-08 22:07 亦海 阅读(754) 评论(0) 推荐(0)
摘要:迷宫求解描述: 栈的方式——深度优先 算法: #include "stdio.h" #define StackSize 100 typedef struct{ int i; int j; } ElemType; typedef struct { ElemType elem[StackSize]; i 阅读全文
posted @ 2019-05-08 21:49 亦海 阅读(247) 评论(0) 推荐(0)
摘要:socket主要用于长连接 简单DEMO: Server端: client端: 结果: server: feng client: Hi,feng 简易聊天室: Server端: client端: 结果: 多个client可以给server发消息 阅读全文
posted @ 2019-05-08 10:43 亦海 阅读(201) 评论(0) 推荐(0)
摘要:1. 栈的定义 栈,也叫堆栈,是最常用也是最重要的数据结构之一。 栈(Stack)是限定仅在表的一端进行插入或删除操作的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。当表中没有元素时称为空栈。 栈操作的特点:后进先出,先进后出。 因此,栈称为后进先出表(LIFO, 阅读全文
posted @ 2019-05-07 22:20 亦海 阅读(776) 评论(0) 推荐(0)
摘要:1. 链表 线性表的链式存储结构就是用一组任意的存储单元(可以是不连续的)存储线性表的数据元素。 采用链式存储结构的表示的线性表简称链表。 链式存储方式可用于表示线性结构,也可用于表示非线性结构。 链表通常有两个域 data域——存放结点值的数据域 next域——存放结点的直接后继的地址,需要指针类 阅读全文
posted @ 2019-05-06 19:30 亦海 阅读(1056) 评论(0) 推荐(0)
摘要:1. 线性表的定义 线性表L是n(n≥0)个具有相同属性的数据元素a1,a2,a3,…,an组成的有限序列,其中序列中元素的个数n称为线性表的长度。 当n=0时称为空表,即不含有任何元素。 常常将非空的线性表L(n>0)记作:L=(a1,a2,…an) 其中ai-1为ai的直接前驱,ai+1为ai的 阅读全文
posted @ 2019-05-06 17:04 亦海 阅读(1902) 评论(2) 推荐(0)
摘要:常用命令 1、查看文件 ls [查看文件] 通配符: [ * ] 匹配任意多个字符0-256 a* 一个以上字符 [ ? ] 匹配任意一个字符 a? 两个字符 [ [a-z] ] 区间法 匹配a到z的所有字符 只能确定一个字符 [ [abcde] ] 穷举法 权值法 匹配abcde的所有字符 只能确 阅读全文
posted @ 2019-05-04 21:48 亦海 阅读(188) 评论(0) 推荐(0)