- 博客(20)
- 收藏
- 关注
SICP读书笔记-huffman编码的实现
huffman 编码是一种变长前缀式编码,通过利用被编码消息中符号的出现频率(频率出现越高的用越少的码),可以有效的节约空间。在 SICP 的2.3.4节通过实现一个huffman编码树来阐述通过表和数据抽象去操作集合和数的例子。 构建 huffman 编码树huffman 树以表的方式来表示,将树分为 叶子节点*和 *非叶子节点('leaf symbol weig...
2014-03-30 22:52:39
184
原创 数据结构之-跳跃表(skip list, scala版)
概述 SkipList 是由William Pugh发明的一种数据结构,它的作用类似平衡二叉树,对查找,删除,插入操作的时间复杂度为O(logN),是一种十分高效的查找结构。SkipList使用随机化的平衡方案取代了平衡二叉树的严格的平衡方案,因此它也是一种随机化的数据结构。SkipList基于并联的链表,是对有序的链表附加上随机个数的前进的链接,使得在查找过程中可以快速地跳过部分链...
2013-09-03 10:42:36
344
Bash-shell的启动文件
Linux系统用环境变量来在程序和脚本中标识它自己。这为你的程序提供了获得系统信息的一个简单方法。问题是如何设置这些变量。在你登陆Linux系统启动一个bash shell时,默认情况下bash在几个文件中查找并执行其中的命令。这些文件称作启动文件。bash检查的启动文件取决于你启动bash shell的方式。启动bash shell有3种方式:登陆时当做默认登陆shell...
2013-06-14 22:37:14
416
(转)配置多个git远程仓库的ssh-Key切换
转载地址:http://omiga.org/blog/archives/2269 目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户(first),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配...
2013-05-20 23:28:40
467
python标准库学习系列2-真值测试
在python中任何对象都能被用于真值测试的表达式中,满足以下任意条件的对象的真值被认为是False:[list][*]None[*]False[*]数值对象中的0值,如0,0L,0.0,0j[*]空序列,如'',[],()[*]空map,{}[*]用户自定义类型中,如果类中包含__nonzore__(),当该方法返回False时,或者类中含有__len__()方法,当...
2013-04-06 15:58:33
151
原创 python标准库学习系列1-BIFS
[b]abs(x)[/b][*]返回数值的绝对值,参数x为整形或者浮点型[b]all(iterable)[/b][*]判断迭代器对象中的元素是否全为真,若是则返回真,等价代码如下:[code="python"]def all(iterable): for element in iterable: if not element: ...
2013-04-06 00:18:43
347
数据结构之-二叉查找树的实现(C语言版)
修正:前驱与后继操作有误,修正二叉查找树是满足如下性质的二叉树:[list][*]设x为二叉树中的一个结点,如果y是x的左子树中的一个结点,则key[y]data) { curNode = curNode->left; } else { curNode = curNode->right; } } return curNode;}//返回二...
2012-08-11 00:32:14
310
常用排序算法的实现(C语言版)-基数排序
基数排序:[code="c"]#include #include "algosort.h"/*被排序元素的最大位数,4则意味着只能排序< 10000 的数*/#define WIDTH 4 #define MAXK 10 //位数划分基于的基数,10表示为10进制划分void radixSort(int a[], int n) { int i; void...
2012-08-01 22:14:43
247
常用排序算法的实现(C语言版)-快速排序
快速排序:[code="c"]/**将r位置中的位置移动到正确位置q上,并返回q,使得在a[p]..a[q-1] < a[q],a[q+1]..a[r] > a[q]*/int partition(int a[], int p, int r);void qSort(int a[], int p, int r);void quickSort(int a[], in...
2012-08-01 22:08:29
86
常用排序算法的实现(C语言版)-堆排序
堆排序:[code="c"]/***排序过程中使用到的堆的结构*/typedef struct heap { int heapSize; int *ap; int apLength;} Heap;/**调整i位置上的元素,以保持最大堆的性质*/void maxHeapify(int a[], int i, int hSize) { int...
2012-08-01 22:01:21
220
不一样的二分查找-只比较一次的2分查找实现
[*]正常进行2次比较的二分查找实现,取列表中点值,(1)先比较x是否小于v[mid],若小于则说明在mid的左侧,(2)继续比较x是否大于v[mid],若大于则说明在mid的右侧(3)否则mid即为x的位置[code="c"]int binsearch(int x, int v[], int n) { int low, high, mid; low = 0; high =...
2012-07-11 00:49:27
188
原创 Spring AOP中JoinPoint的表达式定义描述
在使用Spring AOP的过程中,经常需要使用到各种不同的JoinPoint的定义,Spring AOP遵循了AspectJ形式的JoinPoint的定义形式,但是Spring目前只支持部分的AspectJ形式的Joinpoint的定义,同时Spring AOP只支持方法级别的JoinPoint。以下是我在学习Spring开发者手册时总结的一些JoinPoint的定义,不完整,欢迎补充。...
2012-06-26 23:37:37
1545
原创 HIVE中row_number函数的描述与使用场景
假设一个场景:存在表user_score,该表的数据如下[table]|id|rate|score||1|'0-4'|10||2|'0-4'|40||3|'0-4'|30||4|'0-4'|20||5|'5-10'|10||6|'5-10'|40||7|'5-10'|30||8|'5-10'|20||9|'11-20'|10||10|'11-20'|...
2012-06-12 23:37:57
522
Hive对形如f(column)进行分组的两种办法
在使用HIVE时,如果某个列应用了某个函数并使用如f(col) 重新命名列f(col) as fc,对想基于fc直接直接group by时,如:[code="sql"]select f(col) as fc, count(*) from table_name group by fc[/code]HIVE是不支持的,运行该语句会报错。可以使用以下的两种方式来达到相同的目的:...
2012-06-04 18:53:36
184
最好的JAVA IDE IntelliJ IDEA使用简介(三)—之你不能忘记的快捷键
IDEA有许多的快捷键来帮助你更便捷的编写代码,以下列出的快捷键(默认情况下,你还没有定制你的快捷键)是工作中经常需要使用到的,请牢记[table]|快捷键|描述|备注||Alt+F1|视图切换|切换当前工作文件的视图||Ctrl+Tab|打开切换器|通过切换器,可以在工具窗口。和编辑窗口中打开的TAB中进行切换||Alt+Home|显示导航条|||Ctrl+J|插入一...
2012-05-31 00:28:55
94
原创 一种分布式系统下的自增主键实现方法
[size=medium]在分布式系统中大多数存在着如下的架构形式:[/size][img]http://dl.iteye.com/upload/attachment/0068/6014/f7ecb382-492a-3153-8275-2499df1ebb9c.jpg[/img]系统的被逻辑分为前台应用和数据库两个部分,前台应用通过统一的数据访问层对数据库进行读写操作,前台应用会部...
2012-05-24 22:35:41
478
原创 最好的JAVA IDE IntelliJ IDEA使用简介(二)—之基本操作
[b]一.在编辑器中打开文件[/b]1.可以使用下面的几种方式打开project内的文件进行编辑(·)在project窗口中双击需要编辑的文件。(·)在project窗口选择需要编辑的文件,按F4(·)在project窗口选择需要编辑的文件,然后右键弹出上下文菜单,选择Jump to Source(·)使用Go To 命令(·)通过导航条,来选择打开文件: ...
2012-05-23 08:48:08
299
原创 最好的JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素
(注:简介基于IDEA的版本为:11.0,下载地址:[url]http://www.jetbrains.com/idea/[/url])打开IDEA,(当第一次打开的时候出现的是一个欢迎页面,随便创建一个project来进入到IDEA的主界面),主界面显示如下:[img]http://dl.iteye.com/upload/attachment/0068/3705/ff5394a3...
2012-05-20 12:56:15
943
原创 Hive使用LEFT OUTER JOIN 实现not in 子句
当前HIVE 不支持 not in 中包含查询子句的语法,形如如下的HQ语句是不被支持的:查询在key字段在a表中,但不在b表中的数据[code="sql"]select a.key from a where key not in(select key from b)[/code]可以通过left outer join进行查询,(假设B表中包含另外的一个字段 key1[...
2012-05-15 18:55:38
604
原创 eclipse内存分析工具MAT浅谈(一)
[size=medium]MAT(Memory Analyzer Tool) 是基于heap dumps来进行分析的,所以首先必须通过一定的手段得到JAVA堆的DUMP文件。JDK自带的。JConsole 或者 JMAP都是不错的工具。准备(·)下载eclipse3.7(·)安装MAT插件:http://download.eclipse.org/mat/1.1/update-sit...
2012-05-15 01:56:15
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人