Author Archives: coder4

算法技术手册 – 排序 – 计数排序

如果已知被排序的n个元素,值范围固定在在 "[0,k)"内],那么计数排序是最好的选择,它具有线性复杂度。

这个约束有些过强,有些时候,可以将不满足这个条件的转化一下:
比如 [-k, k)映射]到[0, 2k)等]。
再比如1/p的小树映射到p k-p等等。

下面上算法,主要走两遍:
首先建立k个桶
(1)扫描n个元素,增加对应桶中的计数
(2)从小到大扫描k个桶,计数非零则减一,然后顺序、依次输出。

源代码:
#include <stdio.h>[......]

继续阅读

推荐开源的INI文件解析器SimpleINI(c++)

在Python中,INI解析这种问题交给ConfigParser就行了,非常简单,但是C++显然没有原生的类库解决问题。
Windows下的ini API不是可移植的,所以无视它。

推荐一个非常好用的,跨平台的INI解析器:SimpleINI,支持section,读、写、各种value,遍历等。

网址:http://code.jellycan.com/simpleini/

旧代码废弃了,已经托管到github上:https://github.com/brofield/simp[......]

继续阅读

试用ICTCLAS分词系统

贵所的ICTCLAS号称是目前最好的中文分词系统。今天使用了一下,记录下心得。

我的需求主要是分词,无需词性标注,而这一点可能恰恰是ICTCLAS的亮点。
主要流程:
ICTCLAS_Init(cfg_path)
ICTCLAS_ParagraphProcess(input, input_len, buffer, ENCODING, 0)
buffer是缓冲区,建议为6 * input_len
0是我不需要词性标注

对这个类包装了一下,方便今后使用。
PS:ICTCLAS[......]

继续阅读

Linux下使用Transmission下载BT/PT(无需Gnome)

Transmission是Linux下最著名的BT下载软件了。

由于Transmission更新很快,且依赖库非常多,强烈建议您使用Ubuntu 10.04及以上版本,使用apt安装,本文即在如下环境下介绍。

Transmission分为很多类型,我们以Daemon即只有后台守护进程、没有GTK图形界面的为例子,这更适用于远程使用的情况。

1、安装Transmission
#安装
sudo apt-get install transmission-daemon
#启动[......]

继续阅读

学习Xapian(4) – Faceting Search(Filter / 过滤)

在信息检索中,有一类任务叫做Faceting Search,在Wikipedia中的定义如下:
Faceted search, also called faceted navigation or faceted browsing, is a technique for accessing a collection of information represented using a faceted classification, allowing users to explore by fil[......]

继续阅读