Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler).....
分类:
其他好文 时间:
2015-03-29 07:04:10
阅读次数:
137
今天复习以前的代码,突然发现插入排序用的二分查找算法实现得很别扭,于是试试重写一个,没想到相当顺利,几分钟就写好并测试通过了:static int BinarySearch(int[] array, int value, int start, int end) { if(start ==...
分类:
其他好文 时间:
2015-03-21 18:32:27
阅读次数:
99
假设现在有一个整数对序列,每个整数对代表某周类型的对象,我们用P-Q对表示“P链接到Q”。我们假设这种关系具有传递性,即如果p链接到q,而q又连接到r,则p连接到r。下面的程序是一个简单算法的实现,这个算法是解决连通性问题的快速查找算法。该算法的基础是一个整数数组,当..
分类:
编程语言 时间:
2015-03-20 18:58:12
阅读次数:
150
我们考虑的下一个算法是与快速查找算法互补的快速合并算法。它基于相同的数据结构——以对象名作为索引的数组——但由于它对元素值的解释与快速查找算法不同,因此导致了更复杂的抽象结构。在一个无循环的结构中,每个对象都与同一集合中的另一个对象有连接。要判断两个对象是..
分类:
编程语言 时间:
2015-03-20 18:55:40
阅读次数:
244
一 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。
Union:将两个子集合并成同一个集合。
因为它支持这两种操作...
分类:
编程语言 时间:
2015-03-14 23:17:48
阅读次数:
195
查找算法一、查找的基本概念查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。查找是一种操作。二、顺序查找针对无序序列的一种最简单的查找方式。时间复杂度为O(n)。三、二分查找(折半查找)针对已排序序列的一种查找方式。并且只适用于顺序存储结构的序列。要求序列中的元素基本不变,在...
分类:
编程语言 时间:
2015-03-12 22:32:03
阅读次数:
629
/* * 二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。 * 请注意这种算法是建立在有序数组基础上的。 * */public class BinarySearch { public static void main(String[] args) { ...
分类:
编程语言 时间:
2015-03-11 17:06:42
阅读次数:
115
查找的基本概念 什么是查找?查找是根据给定的某个值,在表中确定一个关键字的值等于给定值的记录或数据元素。查找算法的分类 若在查找的同时对表记录做修改操作(如插入和删除),则相应的表称之为动态查找表;否则,称之为静态查找表。 此外,如果查找的全过程都在内存中进行,称之为内查找;反之,如果查找过程中需要...
分类:
其他好文 时间:
2015-03-10 19:19:51
阅读次数:
156
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。
在数据之外,数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
...
分类:
数据库 时间:
2015-03-10 17:23:25
阅读次数:
225
[ 什么是倒排索引 ]
索引:就好比是书的目录,通过目录我们可以快速的找到对应的章节。
倒排索引源于实际应用中需要根据属性的值来查找记录,例如:通过文章中的单词找到对应的文章。
[ 倒排索引例子 ]
假设有三篇文章,内容分别为:
文章1: it is what it is
文章2:what is it
文章3:it is a ban...
分类:
编程语言 时间:
2015-03-09 22:31:13
阅读次数:
289