自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 红黑树实现

直接上代码/* * bst.h * * Created on: Jun 20, 2014 * Author: buyuanyuan */#ifndef BST_H_#define BST_H_#include #include typedef enum Color { RED = 0, BLACK = 1} Color;typede

2014-06-30 14:46:28 839

原创 蚁群算法

蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质。针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。

2014-05-19 14:02:18 7442 2

原创 中文分词选取-依概率选取

上一篇文章中介绍了一种中文分词的选取算法,本篇文章将介绍另外一种中文分词选取算法,依概率选取算法。 中文分词分词完成之后,还是上篇文章中的原则,分词结果不唯一,然后我们算法的目的是从几种分词好的算法之后选取一个作为分词的最终结果。算法会统计每个词在所有文档中的概率,该算法的中心思想是计算一个字符串中所有分词的概率之积,选取概率最大的作为分词的最终结果。 算法步骤:第一步,通过上几篇文章的的算法对字符串进行分词;第二步,扫描每一次分词结果;第三步,计算每一次分词结果的所有词的概

2014-05-14 13:56:58 1730

原创 中文分词选取-不成词个数判断法

运用前面几篇文章中的分词算法,可以把中文中的词语分出来,但是不同算法可能得到的分词结果不一样,到底如何确定那种分词效果最好呢。我们在这篇文章中探讨一种判断分词效果好坏的方法。 在分词的时候,有些单字是不成词的。可以搜索所有分词的可能性,然后对每一种分词结果进行统计,规则如下:每分出一个词就给分词统计结果加一,如果遇到不成词的单字就再给该分词结果加一。得到的结果分别计算出来。选出一个得分最低的就是所要分词的字符串的结果。 下面就用代码实现一下上面的思想。分别用正向最大匹配和逆向

2014-05-14 10:49:25 2060 2

原创 遗传算法

最近在研究一些算法,前几天看了一下遗传算法。什么是遗传算法,简单地说是解决某一问题时,利用生物学中遗传的一些策略,现在可以说一下算法的步骤。

2014-05-08 14:33:10 6927 8

原创 中文分词--最少单词数

中文分词算法在前两篇文章中介绍了正向最大匹配算法和逆向最大匹配算法本篇文章主要介绍最少单词数算法。顾名思义,就是最少的单词数。算法思想是首先查找词典中最长的单词,匹配看是不是所要分词的字符串的子串,如果是则就是分词的词,迭代以上结果,每次都会在字符串中最长的单词分词,就可以得到最少的单词数不多说了 直接上代码:package com;import java.ut

2014-05-07 21:09:46 2141

原创 中文分词--逆向最大匹配

上一篇文章中介绍了正向最大匹配,可以看到有时候效果不是很好,这里在介绍一种逆向最大匹配的算法。词典和匹配的字符串都和上一篇文章相同只是本算法是从后到前搜索字符串,然后找到最长的匹配结果输出。上代码

2014-05-07 11:31:00 5659 1

原创 中文分词——正向最大匹配法

中文分词应用很广泛,网上也有很多开源项目。我在这里主要讲一下中文分词里面算法的简单实现,废话不多说了,现在先上代码package com;import java.util.ArrayList;import java.util.List;public class Segmentation1 { private List dictionary = new ArrayList();

2014-05-07 11:04:40 10072 1

原创 Redis源码学习笔记(一)

最近在用Redis,一直没有时间去了解Redis原理以及内部实现,准备花一个月的闲暇时间去看看Redis低版本的源码,学习一下Redis的原理以及内部实现。下载redis-1.0.tar.gz 直接解压,直接执行makefile,得到三个目标文件,redis-benchmark,redis-cli,redis-server要想看到Redis的执行效果,第一步执行./redis-server

2014-01-17 11:27:18 3000

原创 设计模式之(四)Singleton模式

单件模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。public class Singleton {private Singleton(

2013-09-29 09:29:13 738

原创 设计模式之(三)Proxy模式

今天学习Proxy模式。代理模式是在对已有对象操作困难或者不太方便时,选择用代理的方式对对象进行访问。Proxy实现的方法必须和被代理对象一致。举一个简单的例子, 有一个Math类实现了IMath接口package com.proxy;public interface IMath {public int add(int a, int b);public int sub(int

2013-09-27 15:56:16 804

原创 设计模式之(二)Adapter模式

今天学习Adapter模式,An adapter helps two incompatible interfaces to work together. This is the real world definition for an adapter. Adapter design pattern is used when you want two different classes with

2013-09-27 10:53:16 652

原创 gsoap 中文乱码处理

在linux下用gsoap得到数据时,中文是乱码用iconv可以处理具体处理见代码:#include int conv_charset(const char *dest, const char *src, char *input, size_t ilen, char *output, size_t olen) {iconv_t conv = iconv_open(dest,

2013-09-26 11:46:26 1526

原创 设计模式之(一)Factory模式

敏捷软件开发-原则、模式与实践依赖倒置原则(DIP)说的是任何类都应依赖于抽象类,避免依赖于具体类。Circle c = new Circle(r);Circle是一个具体类,所以创建Circle的势力都违反了DIP。很多具体类都是非常易变的,依赖于他们会带来问题。这就用到了Factory模式,factory模式允许只依赖于抽象接口就能创建具体对象的实例。下面是个具体的例子

2013-09-26 11:32:25 654

原创 僵尸进程 处理

由于使用fork创建的子进程被kill以后,父进程没有kill时,用ps查看就会显示该子进程为僵尸进程。开始没有设置signal(SIGCHLD, SIG_IGN);然后在程序里用system(kill -s 9 XXX) XXX表示子进程号运行之后发现子进程显示为僵尸进程。但是直接在后台运行 kill -s 9 XXX再次查看进程就没有僵尸进程产生。sig

2012-11-29 09:20:04 1134

转载 C语言逗号运算符

在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。  假设b=2,c=7,d=5,  a1=(++b,c--,d+3);  a2=++b,c--,d+3;  对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a1=8。  对

2012-10-15 13:26:10 759

原创 jscharts.js如何去掉logo的方法

这两天在做一个图表,需要用到pie图,找了几个都不怎么好用,最后选定jsCharts作为框架。可以得到3Dpie图,但是有一个问题是所有的图左上角会有一个logo,去掉logo的方法是打开jscharts.js文件,找到fs.bg.2u(fX),将这句话删除掉即可。我的jscharts的版本是v3.01,可能版本不同会有fg.bg.2t(fX)。

2012-09-27 15:14:07 3053 3

原创 jquery Math函数

Math.cell语法:Math.cell(x);参数:X是一个数值或者表达式。说明:返回所给参数的近似整数值,近假值为向上取整所得的数值,取近似值为大于等于参数的整数。Math.round语法:Math.round(x);参数:X为一个数值。说明:返回对参数X四舍五入后所得的整数近似值。Math.floor             语法:Mat

2012-09-25 09:19:33 9452

原创 解决putty上vi小键盘不好使的问题

原来在putty上用vi的时候,开NumLock时按小键盘上的数字键并不能输入数字,而是出现一个字母然后换行(实际上是命令模式上对应上下左右的键)。输入数字的时候,不能用小键盘总是很不舒服的。于是就去找解决办法。还是习惯在小键盘上敲击数字解决办法:在选项 Terminal->Features 里,找到 Disable application keypad mode ,选上就可以了。

2012-09-14 13:21:51 2402

原创 一个很好的书籍下载网站

http://www.chm-pdf.com/

2012-09-14 08:30:31 1335

原创 srand(设置随机数种子)

srand(设置随机数种子)相关函数rand,random srandom表头文件#include定义函数void srand (unsigned int seed);函数说明srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或

2012-09-12 19:06:47 5667 1

原创 Linux多线程学习(十)pthread_atfork

pthread_atfork 注册fork的函数实例 #define _UNIX03_THREADS 1      2 #include       3 #include       4 #include       5 #include       6 #include       7 #include       8 #include       9 #

2012-09-11 13:33:57 5321 1

原创 Linux多线程学习(九)pthread_kill

int pthread_kill(thread_t tid, int sig)将信号sig发送到由tid指定的线程,tid所指定的线程必须与调用线程在同一个进程中。如果sig为零,将执行错误检查,但并不实际发送信号。此错误检查可用来检查tid的有效性。返回值  成功之后返回0,否则返回非零。      1 #define _MULTI_THREADED      2 #in

2012-09-11 12:52:49 4737

原创 Linux多线程学习(八)pthread_setschedparam

pthread_setschedparam 设置线程的权限int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param)参数 1. target_thread是使用pthread_create所获得的线程ID。  2.线程的调度有三种策略:SCHED_OT

2012-09-11 10:52:34 14793 1

原创 Linux多线程学习(七)sched_yield

sched_yield()这个函数可以使用另一个级别等于或高于当前线程的线程先运行。如果没有符合条件的线程,那么这个函数将会立刻返回然后继续执行当前线程的程序。  在成功完成之后返回零,否则返回-1.看下面一个实例#define _MULTI_THREADED#include #include #include #define LOOPCONSTAN

2012-09-11 09:02:15 15681 2

原创 Linux多线程学习(六)pthread_once

int pthread_once(pthread_once_t *once_control,void(*init_routine)(void));参数:once_control         控制变量init_routine         初始化函数返回值:若成功返回0,若失败返回错误编号。 类型为pthread_once_t的变量是一个

2012-09-10 16:10:29 4627

原创 Linux多线程学习(五)pthread_equal

#define _MULTI_THREADED#include #include pthread_t theThread;static void checkResults(char *string, int rc) { if (rc) { printf("Error on : %s, rc=%d", string, rc); exit

2012-09-10 15:26:15 2801

原创 Linux多线程学习(四)pthread_self

原型:#include pthread_t pthread_self(void);说明:获取本进程自身的 ID。进程 ID 类型是 pthread_t ,这个类型一般为long long 型,8个字节。测试代码:#include #include #include void *thread_one (){

2012-09-10 15:00:31 7289

原创 Linux多线程学习(三)pthread_key_create

函数 pthread_key_create() 用来创建线程私有数据。该函数从 TSD 池中分配一项,将其地址值赋给 key 供以后访问使用。第 2 个参数是一个销毁函数,它是可选的,可以为 NULL,为 NULL 时,则系统调用默认的销毁函数进行相关的数据注销。如果不为空,则在线程退出时(调用 pthread_exit() 函数)时将以 key 锁关联的数据作为参数调用它,以释放分配的缓冲区

2012-09-10 14:19:21 26386 5

原创 Linux多线程学习(二)pthread_join

NAMEpthread_join - wait for thread termination  等待直到线程终止SYNOPSIS#include pthread.h>int pthread_join(pthread_t thread, void **value_ptr);DESCRIPTIONThe pthread_join() function suspe

2012-09-10 12:30:15 4561

原创 Linux多线程学习(一)pthread_create

Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr,void *(*start_rtn)(void), void *restrict arg);Returns: 0 if

2012-09-10 10:48:46 7501

原创 qsort(利用快速排序法排列数组)

qsort(利用快速排序法排列数组)相关函数bsearch表头文件#include定义函数void qsort(void * base,size_t nmemb,size_t size,int ( * compar)(const void *, const void *));函数说明参数ba

2012-09-10 09:25:08 1580

转载 前端代码标准最佳实践:HTML篇

http://powertoolsteam.blog.51cto.com/2369428/975187Web前端代码中,HTML是根本,CSS和JavaScript也是围绕着既有的HTML结构来构建,所以良好的HTML代码结构,除了提高了HTML代码的可读性,可维护性和执行性能之外,也可以让相对应的CSS和JavaScript代码更好的构建。距前面两篇探讨JavaScript(前端代码

2012-09-07 15:26:47 649

转载 前端代码标准最佳实践:CSS

http://powertoolsteam.blog.51cto.com/2369428/958007我们再来谈谈CSS代码的一些标准实践。1,命名和其他语言规范一样,css的命名也讲究命名要有意义,命名要尽可能短但是要足够表达含义;命名的词用连字符连接。不规范的命名:#navigation{}.demoimage{}.error_status{}

2012-09-07 15:25:06 788

转载 前端代码标准最佳实践:javascript篇

http://powertoolsteam.blog.51cto.com/2369428/920652前言最近一直重构项目的前端代码,也参考了各种前端代码的最佳实践,目的是让前端的HTML,CSS,Javacript代码更符合标准,有更好的性能,更好的可维护性,尝到了重构后的甜头,也萌生了写这个系列博客的念头。前端代码有其固有的灵活性,这就导致了目前前端代码非常混乱的局面,本系

2012-09-07 15:22:58 348

原创 lsearch(线性搜索)

lsearch(线性搜索)相关函数lfind表头文件#include定义函数void *lsearch(const void * key ,const void * base ,size_t * nmemb,size_t size, int ( * compar) (const void * ,const void *

2012-09-07 10:01:49 2459

原创 bsearch(二元搜索)

bsearch(二元搜索)相关函数qsort表头文件#include定义函数void *bsearch(const void *key,const void *base,size_t nmemb,size_tsize,int (*compar) (const void*,const void*));

2012-09-06 19:39:58 960

原创 crypt(将密码或数据编码)

crypt(将密码或数据编码)相关函数getpass表头文件#define _XOPEN_SOURCE#include定义函数char * crypt (const char *key,const char * salt);函数说明crypt()将使用Data Encryption St

2012-09-06 10:13:56 1807

原创 strtol(将字符串转换成长整型数)

strtol(将字符串转换成长整型数)相关函数atof,atoi,atol,strtod,strtoul表头文件#include定义函数long int strtol(const char *nptr,char **endptr,int base);函数说明strtol()会将参数nptr字

2012-09-05 10:14:08 2632

原创 Linux 0.11内核学习(二)

!! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x3000 is 0x30000 bytes = 196kB, more than enough for current! versions of linux ! SYS_SIZE 是要加载的节数(16 字节为1 节)。0x3000 共为! 0x30000

2012-09-04 15:04:48 1438

jscharts 3.01去掉水印支持中文版

jscharts 3.01去掉水印支持中文版可以完美处理各种图表,无logo

2012-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除