- 浏览: 3369364 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://www.open-open.com/lib/view/open1326091425953.html
Google Sparsehash 包
实现背景:
该包由2种类型和HashTable实现组成。
Sparse 设计的实现过程中考虑的是空间优先;dense 设计上考虑的是时间优先。设计的注重点不一样,所以实现也不一样。为了和通用的STL相适应,每一种实现提供了hash-map和Hash-set2种封装方式。
在使用Hash_map和Hash_set的过程中是不需要安装STL库的,google提供了整个的实现过程。Google在实现的过程中大量使用了模板和泛型编程。
实现特点:
1。这个库提供了内存中Hash tables的一种实现,同时提供了持久化存储的能力。实现上尽可能快,可移植和小。 实现这些目标使用了Knuth在<<计算机程序设计艺术 第三卷>>中提到的 内部探测散列算法(具体Hash函数的实现可以参考http://burtleburtle.net/bob/hash/evahash 和 http://burtleburtle.net/bob/c/lookup2.c)。与开放链Hash算法不同,它不需要指向每个元素的指针项,在实践中仍然达到了常数级的查找时间。
2.为了节省空间,在插入Hash table的过程中,无论是Key还是data使用Union方式:如果Key或data很小,就直接存储,否则就存取一个指针。
为了便于存取Key和data,可以使用2个宏 KEY_PTR和PTR_KEY在参数和指针实际所指的数据之间转换比如:
char key[] = "ab", *key2;
HTItem *bck; HashTable *ht;
HashInsert(ht, PTR_KEY(ht, key), 0);
bck = HashFind(ht, PTR_KEY(ht, "ab"));
key2 = KEY_PTR(ht, bck->key);
主要接口:
这个Hash table的实现支持的主要接口如下:
1. HashTable *AllocateHashTable(int cchKey, int fSaveKeys)
功能:分配一个Hashtable的结构并且返回它
参数: cchKey: 为正数时候,表明每个Key是固定长度的;为0表明Key是一个以\0结束的固定长度的字符串。
fSaveKey: 通过是需要调用者分配Key的空间,如果设置为1,会Copy一个Key。
2. ClearHashTable(HashTable *ht)
功能:移除 hashtable的所有元素;
3. void FreeHashTable(HashTable *ht)
功能: 释放 hashtable使用的内存
4. HTItem *HashFind(HashTable *ht, ulong key)
功能:查询Hashtable,找到返回该元素,否则为空;
5. HTItem *HashFindLast(HashTable *ht)
功能:返回最后查找过的的元素
6 HTItem *HashFindOrInsert(HashTable *ht, ulong key, ulong dataInsert)
功能:查找指定的Key的元素,不在就插入。
7. HTItem *HashFindOrInsertItem(HashTable *ht, HTItem *pItem)
功能:插入一个Key/data对,是否覆盖已经存在的元素由 SAMEKEY_OVERWRITE标记设定。
9 HTItem *HashInsert(HashTable *ht, ulong key, ulong data)
功能: -- 插入 key/data as an HTItem.
10 int HashDelete(HashTable *ht, ulong key)
功能: -- 移除一个制定Key的元素,成功返回1,否则不存在返回0
11 int HashDeleteLast(HashTable *ht)
功能: -- 删除最近查询过的元素.
12 HTItem *HashFirstBucket(HashTable *ht)
功能-- 用来遍历hashtable的桶, 遍历过程中不要做插入和删除操作;
13 HTItem *HashNextBucket(HashTable *ht)
-- RETURNS NULL at the end of iterating.
14 int HashSetDeltaGoalSize(HashTable *ht, int delta)
功能:一次性批量插入数据;
15 void HashSave(FILE *fp, HashTable *ht, int (*dataWrite)(FILE *, char *))
功能:将整个Hash表的内容保存在文件中。如果数据域是一个指针或者复杂的数据结构,需要传递一个函数指针将文件指针作为参数,此时可以写入你想写入的东西,函数返回写入的字节数。如果数据域是整数,不需要传函数指针。
16 static HashTable *HashDoLoad(FILE *fp, char * (*dataRead)(FILE *, int),
HashTable *ht)
功能: --装入Hash表. 他需要一个函数来读取一个文件的结构和结构的大小。功能与 HashSave对应。
17 HashTable *HashLoadKeys(FILE *fp, char * (*dataRead)(FILE *, int))
功能: -- 与 HashLoad(),不同 只有必要的时候才从磁盘Load相应的数据.这种方法可以节省内存 。
注意:在装入数据的时候不应该插入和删除数据。
功能扩展:
这个HashTable实现没有使用共享内存的方式,我们可以对AllocateHashTable进行简单改写使用共享内存的方式;另外这个 Hashtable没有提供自动淘汰节点的功能,可以增加LRU,对访问节点的计数和时间统计,在无法继续插入新的节点时候触发淘汰操作。
Google Sparsehash 包
实现背景:
该包由2种类型和HashTable实现组成。
Sparse 设计的实现过程中考虑的是空间优先;dense 设计上考虑的是时间优先。设计的注重点不一样,所以实现也不一样。为了和通用的STL相适应,每一种实现提供了hash-map和Hash-set2种封装方式。
在使用Hash_map和Hash_set的过程中是不需要安装STL库的,google提供了整个的实现过程。Google在实现的过程中大量使用了模板和泛型编程。
实现特点:
1。这个库提供了内存中Hash tables的一种实现,同时提供了持久化存储的能力。实现上尽可能快,可移植和小。 实现这些目标使用了Knuth在<<计算机程序设计艺术 第三卷>>中提到的 内部探测散列算法(具体Hash函数的实现可以参考http://burtleburtle.net/bob/hash/evahash 和 http://burtleburtle.net/bob/c/lookup2.c)。与开放链Hash算法不同,它不需要指向每个元素的指针项,在实践中仍然达到了常数级的查找时间。
2.为了节省空间,在插入Hash table的过程中,无论是Key还是data使用Union方式:如果Key或data很小,就直接存储,否则就存取一个指针。
为了便于存取Key和data,可以使用2个宏 KEY_PTR和PTR_KEY在参数和指针实际所指的数据之间转换比如:
char key[] = "ab", *key2;
HTItem *bck; HashTable *ht;
HashInsert(ht, PTR_KEY(ht, key), 0);
bck = HashFind(ht, PTR_KEY(ht, "ab"));
key2 = KEY_PTR(ht, bck->key);
主要接口:
这个Hash table的实现支持的主要接口如下:
1. HashTable *AllocateHashTable(int cchKey, int fSaveKeys)
功能:分配一个Hashtable的结构并且返回它
参数: cchKey: 为正数时候,表明每个Key是固定长度的;为0表明Key是一个以\0结束的固定长度的字符串。
fSaveKey: 通过是需要调用者分配Key的空间,如果设置为1,会Copy一个Key。
2. ClearHashTable(HashTable *ht)
功能:移除 hashtable的所有元素;
3. void FreeHashTable(HashTable *ht)
功能: 释放 hashtable使用的内存
4. HTItem *HashFind(HashTable *ht, ulong key)
功能:查询Hashtable,找到返回该元素,否则为空;
5. HTItem *HashFindLast(HashTable *ht)
功能:返回最后查找过的的元素
6 HTItem *HashFindOrInsert(HashTable *ht, ulong key, ulong dataInsert)
功能:查找指定的Key的元素,不在就插入。
7. HTItem *HashFindOrInsertItem(HashTable *ht, HTItem *pItem)
功能:插入一个Key/data对,是否覆盖已经存在的元素由 SAMEKEY_OVERWRITE标记设定。
9 HTItem *HashInsert(HashTable *ht, ulong key, ulong data)
功能: -- 插入 key/data as an HTItem.
10 int HashDelete(HashTable *ht, ulong key)
功能: -- 移除一个制定Key的元素,成功返回1,否则不存在返回0
11 int HashDeleteLast(HashTable *ht)
功能: -- 删除最近查询过的元素.
12 HTItem *HashFirstBucket(HashTable *ht)
功能-- 用来遍历hashtable的桶, 遍历过程中不要做插入和删除操作;
13 HTItem *HashNextBucket(HashTable *ht)
-- RETURNS NULL at the end of iterating.
14 int HashSetDeltaGoalSize(HashTable *ht, int delta)
功能:一次性批量插入数据;
15 void HashSave(FILE *fp, HashTable *ht, int (*dataWrite)(FILE *, char *))
功能:将整个Hash表的内容保存在文件中。如果数据域是一个指针或者复杂的数据结构,需要传递一个函数指针将文件指针作为参数,此时可以写入你想写入的东西,函数返回写入的字节数。如果数据域是整数,不需要传函数指针。
16 static HashTable *HashDoLoad(FILE *fp, char * (*dataRead)(FILE *, int),
HashTable *ht)
功能: --装入Hash表. 他需要一个函数来读取一个文件的结构和结构的大小。功能与 HashSave对应。
17 HashTable *HashLoadKeys(FILE *fp, char * (*dataRead)(FILE *, int))
功能: -- 与 HashLoad(),不同 只有必要的时候才从磁盘Load相应的数据.这种方法可以节省内存 。
注意:在装入数据的时候不应该插入和删除数据。
功能扩展:
这个HashTable实现没有使用共享内存的方式,我们可以对AllocateHashTable进行简单改写使用共享内存的方式;另外这个 Hashtable没有提供自动淘汰节点的功能,可以增加LRU,对访问节点的计数和时间统计,在无法继续插入新的节点时候触发淘汰操作。
发表评论
-
分布式存储系统GlusterFS安装配置
2016-06-27 14:51 999http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2471http://my.oschina.net/chengxiao ... -
跟我学习dubbo
2016-06-17 15:20 1036跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1152JavaMelody监控web服务器 http://my.os ... -
freemarker使用记录
2016-06-08 16:24 1284freeMarker语法 http://uule.iteye. ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1061原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2850原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1503http://my.oschina.net/wjme/blog ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2247http://www.oschina.net/p/uncode ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3397http://www.guokr.com/blog/47576 ... -
Fedora安装Redis
2016-05-04 08:56 1384管理工具: centos6.3下安装phpredisadmin ... -
redis-install.sh
2016-05-04 08:56 4#!/bin/bash # From here: http: ... -
redis 集群中Session解决方案之Spring Session
2016-05-04 08:54 1277集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4739使用Spring-data进行Redis操作 http://z ... -
Shiro集群实现
2016-05-04 08:53 2268apache shiro集群实现(一) session共享 h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3041原文: http://www.programgo.com/ar ... -
Apache Lucene 5.x版本 示例
2016-04-28 15:46 1104http://blog.csdn.net/isea533/ar ... -
Hessian 二进制RPC协议整合到SpringMVC
2016-04-27 09:47 1707SpringMVC集成Hessianhttp://blog.c ... -
shiro过滤器过滤属性含义
2016-04-21 13:51 1279http://my.oschina.net/cng1985/b ...
相关推荐
Sparse subspace clustering_ algorithm, theory, and applications文章的源代码。
From Sparse Solutions of Systems of Equations to Sparse Modeling of Signals and Images
Sparse and Redundant Representations
Compressed-Sensing is a recent branch that separated from sparse and redundant representations, becoming a center of interest of its own. Exploiting sparse representation of signals, their sampling ...
sparse-map一个高效hash map和hash set的C 实现
机器学习中稀疏编码sparse coding的HIHT,希望对大家有用
Peter Knee-Sparse Representations for Radar with MATLAB Examples
The monitored vibration signal of bearing...sparse discriminant manifold projections (SDMP). The SDMP was developed based on sparsity preserving projections, and sparse manifold clustering and embedding.
Sparse_subspace_clustering算法代码
LeCun大牛的sparse code C++代码,参考的NG的课件实现的,需要armadillo矩阵工具包进行矩阵运算
SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software ...
关于Relu文章的理解翻译,原文见paper:Deep Sparse Rectifier Neural Networks
资源来自pypi官网。 资源全名:torch_sparse-0.6.12.tar.gz
We also obtain improved algorithms for the multiplication of more than two sparse matrices. As the known fast rectangular matrix multiplication algorithms are far from being practical, our result, at...
这是一个压缩传感方面的Gradient Projection for Sparse Reconstruction 工具包。
CVPR-2009-Sparse Subspace Clustering.pdf
SparseMatrix.java
sparse principal component analysis.pdfsparse principal component analysis.pdfsparse principal component analysis.pdfsparse principal component analysis.pdfsparse principal component analysis....
使用凸优化方法来优化一维周期以及随机稀疏线阵