专注于互联网架构技术,努力成为一名架构师

专注于互联网架构技术,努力成为一名架构师

海量数据处理常见方法

所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。     那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-ma...

2012-09-05 23:17:49

阅读数:1102

评论数:0

linux mysql proxy 的安装,配置,以及读写分离

一,mysql proxy是什么,干什么用的 MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡。对于应用来说,My...

2012-05-29 14:50:27

阅读数:643

评论数:0

最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)

Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。   Dijkstra算法是很有代表性的最短路算...

2012-05-05 20:44:15

阅读数:1165

评论数:0

数据结构:TRIE树

Trie树就是字符树,其核心思想就是空间换时间。 举个简单的例子。 给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,第一次出现第几个位置。 这题当然可以用hash来,但是我要介绍的是trie树。在某些方面它的用途更大。比如说对于某一个单...

2012-05-04 21:32:31

阅读数:672

评论数:0

Trie树|字典树的简介及实现

Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。 相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的...

2012-05-04 21:20:38

阅读数:533

评论数:0

Hash和Bloom Filter

这几天的“科研”中涉及到了一个概念,Bloom Filter(有的中文翻译为布隆过滤器,不知道正确否),今天看了下相关的资料,发现这东西和Hash还挺有关系的,在这里一并讲下。 Hash(函数/表) Hash (中译为哈希,或者散列)函数在计算机领域,尤其是数据快速查找领域,加密领域用...

2012-05-04 21:12:16

阅读数:647

评论数:0

布隆过滤器 bloom filter

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 基本概念 如果想判断一个元素...

2012-05-04 21:04:01

阅读数:1916

评论数:0

B树、B-树、B+树、B*树

B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; 否...

2012-04-09 19:49:42

阅读数:472

评论数:0

kruskal算法

今天数据结构课讲了最小生成树的Kruskal算法和Prim算法,不过都只是概念,可能是怕他们听不懂吧,反正算法实现一概不讲...囧 下午抱着《算法导论》跑去图书馆看Kruskal算法,发现《算法导论》真的是牛XXXX的书啊,看完之后豁然开朗,而且惊讶地发现Kruskal算法居然用到了前两天研...

2012-04-06 23:03:52

阅读数:561

评论数:0

Prim算法

前几天研究Kruskal算法,直接上手就是并查集优化,朴素算法压根就没写。这两天看Prim算法也想略过朴素版O(n^2)直接用二叉堆优化,可是发现不看朴素算法根本写不出来...囧,看来还是不能忽略基础... 草稿纸上画图模拟推演了半天,终于搞清楚Prim算法朴素版的C语言实现,拿出那天学Kr...

2012-04-06 21:51:12

阅读数:552

评论数:0

并查集(不相交集合)

不相交集合有两种不同的实现,链表表示和带路径压缩的按秩合并策略。看到大家都比较喜欢用带路径压缩的按秩合并策略,那么我只认真研究了一下带路径压缩的按秩合并策略,暂时不对链表表示作讨论。   顾名思义,并查集的作用不就的“并”和“查”嘛。并查集的功能描述为:合并两个集合;将一元素并入另一集体;判...

2012-04-06 21:44:43

阅读数:691

评论数:0

二叉排序树

1.定义      二叉排序树(Binary Search Tree)又称二叉搜索(查找)树,其定义如下:     (1)若它的左子树非空,则左子树上所有结点的权值都比根结点的权值小;     (2)若它的右子数非空,则右子树上所有结点的权值都比根结点的权值大;     (...

2012-04-05 23:48:15

阅读数:704

评论数:0

堆排序

堆排序        堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1.堆   堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:   Key[i]=Key[2i+1]&&key>=key[2i+2]   即任何一非叶节点的关键字...

2012-04-05 23:39:11

阅读数:693

评论数:0

各种排序算法的稳定性和时间复杂度小结

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法:   这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为...

2012-03-30 22:23:24

阅读数:1132

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭