- 浏览: 198539 次
- 性别:
- 来自: 上海
最新评论
-
NIghtmare28:
太好用了, 谢谢
Create Local Cloudera Parcels Repo to Save Your ASS -
oyxccyj:
你好,请问下你如上的问题解决了吗?我现在也遇到同样的问题,网上 ...
Homework - HBase Shell, Java Client and MapReduce Job -
20131007:
用java描述算法?
基础数据结构和算法二:Selection sort -
ender35:
第二种实现仅能用于数组排序
计数排序(Counting Sort) -
fy616508150:
我想知道有括号参加运算怎么办
算24算法实现
文章列表
After a few hours tweaking and googling, I managed to install apache oozie 3.3.2 on Hadoop 1.1.1.
The document provided in apache oozie 3.3.2 is not very clear. After some googling, I found this blog is a great guide for you install oozie 3.3.1 on Hadoop 0.23.0.
http://srikanthayalasomayajulu.blo ...
Today I tried to run hadoop with hprof to profiling hadoop map tasks. Unfortunately the task failed with below output:
MacBookPro:hadoop-guide gsun$ hadoop -agentlib:hprof=cpu=samples,heap=sites,depth=6,force=n,thread=y,verbose=n,file=prof.output jar hadoop-guide.jar MaxTemperatureDriverWithProf ...
When a task fails and there is not enough information logged to diagnose the error, you may want to resort to running a debugger for that task. This is hard to arrange when running the job on a cluster, as you don’t know which node is going to process which part of the input, so you can’t set up yo ...
先声明一下,本人并未安装成功,所以寻找在Mac OS 上安装Hadoop native library解决方案的就直接略过本文,免得浪费时间。
环境:
Hadoop 1.1.1 stable with source code
Mac OS X Mountain Lion
GNU C compiler
GNU Autool Chain
zlib-dev(stable version >=1.2.0)
安装步骤:
cd $HADOOP_HOME/ && ant -Dcompile.native=true compile-native
第一次失败原 ...
Here is a quick guide to install hadoop lzo library, the install process is pretty easy actually.
Install LZO with HomeBrew, LZO is a wonderful compression scheme to use with Hadoop. HomeBrew is prerequisite, visit https://github.com/mxcl/homebrew to see how to install HomeBrew.
brew instal ...
本文主要参考 http://www.gizmojunkee.com/2012/05/installing-oracle-11gr2-on-ubuntu-12-04/ ,对文中一些步骤做了一些修正,并补充我遇到的新问题。
This howto should guide you though the installation of an Oracle Database 11g Release 2 on Ubuntu 12.04 Desktop. Ubuntu is not officially supported by Oracle so there will be a few twea ...
删除节点是二叉搜索树操作中最复杂的,但对有些应用又非常重要,有必要好好研究一下。
一个取巧的办法:在树节点中加入一个boolean字段,比如isDeleted。需要删除一个节点时就把这个字段置为true,其他操作比如find()在查找之前先判断这个节点是否已经标记为删除了,这样删除的节点将不会改变树的结构,当然这样做还会继续保留这种已经删除的节点。对某些应用场景,这种做法是有优势的,比如已经离职的员工档案要保留在员工记录中。
下面来实现这个删除节点的算法。首先列出树节点的数据结构:
/**
* @author Sun Kui
*/
public class No ...
计数排序的缺点很明显,需要额外的空间C来作为计数数组,虽然时间复杂度为O(n+k),但当输入序列里元素取值很大的时侯,如k=O(n2),时,此时时间复杂度已经达到n2数量级了,空间的消耗也是让人无法承受的。这里介绍一种另一种线性排序算法——基数排序,可以应对数值很大的情况。
基数排序,即一个数位一个数位地进行排序,平常生活中我们经常使用的一种算法思想:如要对一个日期进行排序,日期中由年、月、日组成的,对于这个问题,我们经常使用的是先比较年份,如果相同再比较月份,如果还相同就比较日。
计数排序(Counting Sort)
- 博客分类:
- Algorithm
计数排序假设n个输入元素中的每一个都是介于0-k的整数,此处k为某个整数。计数排序顾名思义离不开计数,我们要计的是输入元素中相同元素出现的次数。对每一个输入元素x,确定小于x的元素的个数,那样排序之后,x在最终输出数组中的位置就可以确定了。例如:如果有17个元素小于x,则x就位于第18
桶排序(bucket sort)
- 博客分类:
- Algorithm
文章来源:http://hxraid.iteye.com/blog/647759
原文中有基于CPP的实现,本文将CPP代码翻译为Java。原文写得很不错,复制过来做个笔记。
全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。
桶排序的基本思想
假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶) 。然后基于某种 ...
这个算法实现中,对小的子数组使用插入排序,借此来提高性能。
Knuth推荐对小数组的切割点为9,正是程序中使用的值。实践中还需要根据测试请看选择更好的切割点。
import java.util.Random;
public class QuickSort2 {
private long[] theArr;
private int nElems;
public QuickSort2(int max) {
this.theArr = new long[max];
this.nElems = 0;
}
...
算法思想:
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。
步骤为:
从数列中挑出一个元素,称为 "基准"(pivot),
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然 ...
以一个枢纽值二分一个数组
- 博客分类:
- Algorithm
划分算法由两个指针开始,分别指向数组的两头。在左边的指针向右移动,右边的指针向左移动。左边的指针leftPtr初始化为第一个数据项,右边的指针rightPtr初始化为数组的最后一项。算法如下:
import java.util.Random;
public class Partition {
private long[] theArr;
private int nElems;
public Partition(int max) {
theArr = new long[max];
nElems = 0;
...
Shell Sort in Java
- 博客分类:
- Algorithm
基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 该方法实质上是一种分组插入方法。
import java.util.Random;
/**
* Shell sort in Java.
* @author Sun Kui
*/
public class ShellSort {
...
组合的问题,递归实现
- 博客分类:
- Algorithm
输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。
假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个字符,我们有两种选择:一是把这个字符放到组合中去,接下来我们需要在剩下的n-1个字符中选取m-1个字符;二是不把这个字符放到组合中去,接下来我们需要在剩下的n-1个字符中选择