
算法
iteye_1868
这个作者很懒,什么都没留下…
展开
-
BloomFilter算法
BloomFilter算法是在1970年提出的算法,具有很好的空间和时间效率,内部是依赖一些列hash算法和数组的。被用来检测一个元素是不是集合中的一个成员,允许有一定的出错率:如果某个数据被判断不在集合中,那么该数据就一定不会在这个集合中;由于hash会有碰撞存,那么如果判断某数据在集合内,这会种判断可能出错。一句话,就是判断为"false"的就一定不会有错,而判断为"true"...原创 2013-05-03 22:31:36 · 140 阅读 · 0 评论 -
Hadoop中的快速排序算法
在Hadoop中,排序是MapReduce框架中最重要的操作之一,Map Task和Reduce Task都会对数据按照key排序,不管逻辑上是否真的需要排序,任何程序中的数据都会被排序,这是Hadoop的默认行为。 [b]MapReduce中使用了两种排序算法:快速排序和优先队列。在Map和Reduce Task的缓冲区使用的是快速排序,而对磁盘上的IFile文...2013-05-22 15:46:23 · 828 阅读 · 0 评论 -
插入排序
插入排序是一中经常使用的算法,特别适合于部分有序和小规模数组的排序。[b]相同情况下它比选择排序的速度要快一倍;在小规模数据集的排序中,也比快速排序要快。[/b] 插入排序是一种稳定的排序算法,其排序时间受待排序的数组中的元素顺序的影响较大。 其思想是:[b]将整个待排序的数组分为有序和无序的两部分,每次处理就是将无序数列的第一个元素与有序数列的...原创 2013-05-22 15:13:36 · 103 阅读 · 0 评论 -
索引优先队列:最大索引优先队列
相对于[url=http://flyingdutchman.iteye.com/blog/1871434]最小优先队列[/url],最大优先队列的代码如下:[code="java"] package org.test;/************************************************************************* ...2013-05-20 22:08:33 · 199 阅读 · 0 评论 -
索引优先队列:最小索引优先队列
在很多应用中,会允许引用优先队列中的数据,我们可以把这种数据结构看作是能够快速访问其最小元素的数组。[code="java"]package org.test;/************************************************************************* * Compilation: javac Index...原创 2013-05-20 22:05:49 · 520 阅读 · 0 评论 -
优先队列
在现实的生活工作中,有许多情况下都要处理有序的元素,但又不要求全部有序,再或者不要求一次就将它们全部排序,这种情况下一种叫“优先队列”的算法就派上了用场。比如说,不要求全排序一个大数据集合的数据,或内存一次装不下整个数据集,但是要求获得最大或最小的M有序的数组。 本节我们会学习基于二叉堆数据结构的优先队列的实现。优先队列最重要的操作就是删除最大元素和插入元素两种操作...原创 2013-05-08 22:10:41 · 95 阅读 · 0 评论 -
三向切分的快速排序算法:有大量重复元素的快速排序
在之前的《快速排序及改进》中,已经对快速排序做了改进;但是在实际的工作环境中,经常会遇到含有大量重复元素的数组,也经常会对这样的数组排序,对这样的数组排序,快速排序性能还可以,但是可以有更大的性能改进,将快速排序的的时间复杂度有对数级提高到线性级别。 [b]三向切分的快速排序是对快速排序算法改进,特别适用于有大量重复元素的数组的排序,其时间复杂度介于N - Nlo...原创 2013-05-08 21:11:38 · 1291 阅读 · 0 评论 -
取中位数的算法
找出一个组元素中的中位数(中间值,它不大于一半的元素也不小于另一半的元素),是一个和排序有关但又不需要完全排序的重要应用。查找中位数在统计和许多数据处理中很常见。 可以把查找中位数看成是一种特殊的选择:在数组中查找第k个小或大的元素。我们可以回想前面《快速排序及改进》中的partition(Comparable[] a,int lo,int hi)方法,它会将数组...原创 2013-05-08 19:48:04 · 1326 阅读 · 0 评论 -
快速排序及改进
在初等的基本排序算法中,插入排序、归并排序和快速排序是常用的排序算法,实现简单,但很高效,它在空间复杂度和时间复杂度之前取得了最佳的平衡,这也是在现实工作中最常用的原因。 下面是一些基本排序算法的比较:[img]http://dl.iteye.com/upload/attachment/0084/1628/c3e718d0-00eb-3b5e-a9a2-319...原创 2013-05-08 18:04:26 · 120 阅读 · 0 评论 -
《Hbase权威指南》深入学习hbase架构(1):LSM-Tree
hbase内部是使用Log-Structured Merge-Tree说索引的,即LSM-tree,当然是为hbase做过优化的。 LSM-tree是一个优秀的算法,思想来源于日志文件系统,本身是为提高B-树在更新插入数据时的性能而提出来的,主要优点就是通过将很多小文件的存取转换为连续的大批量传输,使得对于文件系统的大多数存取都是顺序性的,从而提高磁盘带宽利用率;故障恢复速度快。...原创 2013-04-08 11:41:06 · 503 阅读 · 0 评论