2009年09月17日 星期四 13:06
最近要使用到一些组合数,例如对于整数N,求得1,2,3,……,N的全部组合数,通过这些组合数值,在多线程计算环境中,估算处理的数据量,如果达到一个预设的合理上限,及时终止线程的执行,避免JVM溢出。
可能你会想,JVM内存的大小在64位Linux平台上没有限制,一般JVM不会溢出,但是,从性能的角度来考虑,如果成千上万组线程同时运行在JVM中,如果每一组运算都有价值,我们还值得这样去做,否则,CPU一直处于被占用的状态,执行没有价值的运算,而且可能会使其他需要申请CPU时间完成计算的应用不能很好的进行。
同 |
2009年09月07日 星期一 15:57
一个基于特征向量的近似网页去重算法
曹玉娟 牛振东 彭学平 江 鹏
(北京理工大学计算机科学技术学院 100081)
(北京航天飞行控制中心 100094)
摘 要 |
2009年08月28日 星期五 22:40
2009年08月28日 星期五 18:00
最近,项目中需要使用基于图像识别验证码的技术,初步探索尝试了一下开源的Tesseract OCR项目。该项目简介如下:
This package contains the Tesseract Open Source OCR Engine. Orignally developed at Hewlett Packard Laboratories Bristol and at Hewlett Packard Co, Greeley Colorado.
The Tesseract OCR engine was one of the top 3 engines in the 1995 UNLV Accuracy test. Between 1995 and 2006 it had little work done on it, but it is probably one of the most accurate open source OCR engines |
2009年08月09日 星期日 00:56
针对具有类似过滤功能的数据处理,如果数据量很大,采用单线程来筛选数据,速度可想而知会非常慢,那么肯定想到采用多线程编程,并发执行,能够解决这个问题。但是,在设计多线程筛选系统的时候,对于不同的筛选条件,可能想到对条件进行分类,然后构造一个具有区分度的筛选类实例,从而启动该筛选类实例线程。
如果需要筛选的数据集合,假设就是字符串的集合,集合容量10000000~50000000,也就是说具有10000000~50000000个字符串需要与分类的条件进行比较,删除不满足条件的字符串,保留合适的字符串。
对于这个 |
2009年08月08日 星期六 08:20
在挖掘关联规则的过程中,无可避免要处理海量的数据,也就是事务数据库如此之大,如果采用Apriori算法来挖掘,每次生成频繁k-项集的时候,可能都需要扫描事务数据库一遍,这是非常耗时的操作。那么,可以想尽办法来减少扫描事务数据库的次数,来改进挖掘频繁关联规则的效率。
FP-tree是频繁模式树,它是将整个事务数据库压缩到一棵频繁模式树上。而且,在构造整个事务数据库的的FP-tree的过程中,只需要扫描一次事务数据库就能生成。比AproriGen算法生成候选频繁项集要节省很多时间。
关联规则挖掘FP-growth算法, |
2009年08月03日 星期一 20:05
给定任意一个复式字符串,都能够对其进行拆分,得到全部单式字符串的集合。例如,对于使用空格分隔的复式字符串3,41,20 1,2,33,5 3,18来说,每个元素不是单个的字符,而且其中的每个元素可以是任意的字符串,对其进行拆分,可以考虑构造一种通用的数据结点,来实现拆分。
下面定义一种结点,结点具有一个element的数据域,这里定义为字符串String类型,另外每个结点对应任意个指针域,可以定义一个指针的列表。
Java类CommonNode定义如下所示:
package org.shirdrn.splitter;
import java.util.Lis |
2009年08月03日 星期一 09:04
FP-tree是频繁模式树,是挖掘频繁关联规则使用到的一种数据结构。
它是将事务数据库中的所有事务对应的项集作为FP-tree结点,压缩到一棵FP-tree上,得到一棵频繁模式树。
FP-tree结点数据结构
FP-tree的结点FPNode的数据结构如下:
一个FPNode由4个域组成:
nodeName:结点的名字,也就是它所能标识的一个项目的名称;
nodeCount:结点统计计数,也就是一个nodeName标识的项目对应的统计计数;
nodeLink:指向FP-tree中具有相同的node |
2009年08月02日 星期日 22:17
对于形如字符串123,123,123,123,123,123的复式字符串,将其拆分成单式:333333,333332,333331,……,111111,最笨的方式就是根据逗号分隔的个数写多个循环进行拼接。如果复式字符串很长,用这种方式拆分效率会很低的。
我考虑构造一种类似三叉树的图结构,但是又不同于三叉树,其实是一个图,但是为了求得拆分的单式字符串,需要根据树的结构来遍历,所以暂且称之为树吧。
实现思想如下:
复式字符串用逗号分组,每组元素的数目为3(例如上面就是1和2和3),在树形结构中,每一个元素作为一个结点,每一层最 |
2009年07月31日 星期五 13:20
n-皇后问题描述:
在n×n格的棋盘上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,求解满足条件的棋盘布局。
n-皇后问题是典型的可以使用回溯算法求解的问题。
下面是n-皇后问题的实现求解算法,先给出使用C语言的实现,再转成Java实现。可以通过详细的程序注释来了解求解过程。
C语言实现如下所示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 8
int column[N];
int che |
|
|