自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (6)
  • 收藏
  • 关注

转载 BM模式匹配算法-实现(C语言)

     BM算法的实现很复杂,但是高手程序员就是能写出令人敬佩的代码。     当然,高手程序员不是指我自己,是SNORT2.7.0的设计者/实现者之一。       下面是SNORT2.7.0中提取出的代码。     我将以行注的形式进行讲解。  C代码 /*     函数:int*

2009-10-30 21:28:00 1754 1

转载 BM模式匹配算法-原理(图解)

   首先,先简单说明一下有关BM算法的一些基本概念。     BM算法是一种精确字符串匹配算法(区别于模糊匹配)。     BM算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。     BM算法的基本流程: 设文本串T,模式串为P。首先

2009-10-30 21:10:00 1456

转载 一种可做特殊用途的字符串匹配算法

 一种可做特殊用途的字符串匹配算法纪福全 朱战立(西安石油大学计算机学院,西安 710065)    摘 要 现有的字符串匹配算法按照模式串从左至右或从右至左的顺序匹配,都是直接进行比较,本文提出了一种可做特殊用途的字符串匹配算法——ZZL算法。对于频繁使用的要匹配的主串和模式串来说,ZZL算法的匹配速度会非常快。    关键词 字符串,模式

2009-10-30 20:36:00 812

转载 平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点

 平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好。先把N个点按x排序。 斜率k最大值为max(斜率(point[i],point[i+1]))    0 复杂度Nlog(N)。以3个点为例,按照x排序后为ABC,假如3点共线,则斜率一样,假如不共线,则可以证明AB或BC中, 一定有一个点的斜率大于

2009-10-30 17:06:00 3739

原创 全排列算法

 全排列的生成算法就是对于给定的字符集,用有效的方法将所有可能的全排列无重复无遗漏地枚举出来。任何n个字符集的排列都可以与1~n的n个数字的排列一一对应,因此在此就以n个数字的排列为例说明排列的生成法。  n个字符的全体排列之间存在一个确定的线性顺序关系。所有的排列中除最后一个排列外,都有一个后继;除第一个排列外,都有一个前驱。每个排列的后继都可以从 它 的前驱经过最少的变化而得到,全

2009-10-30 16:59:00 984 1

转载 详细解说STL hash_map系列

 为什么需要hash_map  用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:  岳不群-华山派掌门人,人称君子剑 张三丰-武当掌门人,太极拳创始人 东方不败-第一高手,葵花宝典 ...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的

2009-10-30 15:38:00 543

转载 使用异步 I/O 大大提高应用程序的性能

 使用异步 I/O 大大提高应用程序的性能级别: 中级M. Tim Jones ([email protected]), 顾问工程师, Emulex2006 年 9 月 28 日Linux®中

2009-10-30 15:08:00 638

转载 #program 与 #ifdef #endif区别

在用VC6.0向导生成的头文件中,经常可以看见如下的代码段:      #if !defined(AFX_RESIZABLELAYOUT_H__INCLUDED_)    #define AFX_RESIZABLELAYOUT_H__INCLUDED_        #if _MSC_VER > 1000    #pragma once    #endif // _MS

2009-10-30 15:00:00 3971 1

转载 有球1000盒10,问各盒分别放几球,能保证若干盒能组成1-1000内任意数

今早来到CSDN里转了一圈,发现有个帖子《求教很难的面试题目》,打开一看,题目如下:          现有1000个球,10个盒子,问各个盒子内应该分别放入多少个球,才能达到需要1至1000 之间任何数量的球,你都可以用若干盒子组合出来(用C/C++编写程序)   惭愧的是刚看到这个这个题目时竟然真的想不到思路了,哎,看来还是需要扩展视野啊!下面是一些前辈的解法,贴来和大家一

2009-10-28 20:34:00 2815

转载 深入浅出Win32多线程程序设计之基本概念

一.深入浅出Win32多线程程序设计之基本概念[转]引言  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。  理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通

2009-10-28 20:09:00 1544

转载 static关键字用法学习笔记(C++)

本文重点探讨C++中的static关键字,在此之前先复习一下吧。static关键字是C,C++中都存在的关键字,它主要有三种使用方式       (1)局部静态变量     (2)外部静态变量/函数     (3)静态数据成员/成员函数  

2009-10-28 20:02:00 814

转载 WaitForSingleObject的用法

WaitForSingleObject的用法 DWORD WaitForSingleObject(    HANDLE hHandle,    DWORD dwMilliseconds  );  参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMillisec

2009-10-28 19:40:00 650

转载 c++类对象的内存模型

  C++类对象内存结构    首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。    对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。 之后是子类自己的成员变量数据。    对于子类的子类,也是同样的原

2009-10-28 19:20:00 570

转载 C++虚函数表解析(转)

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方

2009-10-28 16:55:00 562

转载 STL学习小结

STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其它一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。是C++标准库的一个重要组成部分,它

2009-10-28 16:22:00 1004

转载 AC 经典多模式匹配算法

今天说说多模式匹配AC算法(Aho and Corasick),感谢追风侠帮忙整理资料,while(1) {Juliet.say("3Q");}。前面学习了BM、Wu-Manber算法,WM由BM派生,不过AC与它们无染,是另外一种匹配思路。 1.

2009-10-28 09:41:00 1454

转载 求职面试六个注意事项

在求职面试时,大多数面试考官会要求应聘者做一个自我介绍,一方面以此了解应聘者的大概情况,另一方面考察应聘者的口才、应变和心理承受、逻辑思维等能力。千万不要小视这个自我介绍,他既是打动面试考官的敲门砖,也是推销自己的极好机会,因此一定要好好把握。应聘者具体应注意以下几点:   一、接到面试通知后,最好在家打个自我介绍的草稿,然后试着讲述几次,感觉一下。   二、自我介绍时

2009-10-27 23:47:00 910

原创 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之B模式概述

前面一片文章,已经提到了TTMP算法的核心概念,就是“终止符”触发检索。其实这个概念也不是我创造出来的,如果看过编译理论,应该会很熟悉,其实我是偷师其中的归纳法。那么何谓之B模式呢?TTMP -B指的是,在触发对关键字的检索时,从后面往前面检索。比如说:脏字表:wxyzyz待检文本:wxyza当我们遇到了结束符z的时候,我们会回过头来查看刚才到底都遇到了什么文字。由于我

2009-10-27 21:56:00 1029

原创 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传

前面一篇稍微说了一下我自造的TTMP算法思路,貌似很好很强大——估计不是最强的,不过至少我自己觉得比较满意了,至少算是达到可用级别了。那么还有啥好写的呢?好久没有写这种类型的技术文章了,满脑子的想法:  1、除了算法本身,还有什么是效率损耗点?  2、TTMP算法本身也只是讲了一个大概,远没有详细到论文级别,抽空可以给大家详细讲一下。  3、其实上次说到的TTMP算法,还有

2009-10-27 21:50:00 1397 1

转载 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传II

   真是被人言中了,这简直就是一个星战系列。原因很简单,回到我的老本行——算法。这么一个领域,哪怕是芝麻绿豆那么小的问题,我也会发现很多有趣的东西。上一篇前传说完以后,意犹未尽。不过当时还没有更多可一些的,而今天突然发现了那么几个问题,于是又可以写出一篇长篇大论了。    事情的缘由是这样的:早上看到XingD的一个修正,赶紧实测一下,把我发现另一些问题修正之后,还是发现

2009-10-27 21:49:00 957

转载 字符串多模式精确匹配(脏字/敏感词汇/关键字过滤算法)——TTMP算法 之实战F模式

前面那么多篇文章都太抽象,这次来一个稍微实际一点的。F模式是我实际上选用的模式,对该模式我做了不少实际的测试,因此代码也算是比较稳定的。不过由于实际上为了得到该算法的效率,算法本身做了一些优化,对于初学者,理解起来可能会有点困难,因此不适合直接贴原始代码。为了便于大家理解,这里出示的代码会比较好读,但是并不能取得我宣称的效果。大家可以在此基础上进行一定的优化,以便达到你所想要的性能。我目前

2009-10-27 21:45:00 1600

转载 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论如此

什么是TTMP算法?不好意思,我发布这篇文章之前,估摸是没有其他地方能找着该算法的,因为那是俺生造的。TTMP是啥意思呢?是Terminator Triggered Multi-Pattern 的意思,也就是结束符触发多模式算法。-_-! 有点难理解,没关系,看完了也许就理解了。不过这个自造的算法有点复杂,为了保证大家能够顺利阅读,请大家配合做一个测试:拿出你的手表,或者其他计

2009-10-27 21:44:00 1142

转载 嵌入式研发工程师面试试题大全(ANSI CC++方面的知识 )

一.ANSI C/C++方面的知识   1、简答题。     1、 如何在C中初始化一个字符数组。     逐个字符赋值:char s[] = {‘A’,’B’,’C’,’D’};    字符串赋值:char s[] = {“ABCD”};    对于二维字符数组:char s[2][10] = {“cheng”,”jinzhou”};      2

2009-10-27 15:57:00 645

原创 模拟计算器

#include#includeint add(int x,int y);int sub(int x,int y);int mul(int x,int y);int div(int x,int y);int getach(); //用于获取一个合法字符int getid(); //对合法字符进行判断处理int cal(); //计算表达式的

2009-10-27 15:04:00 820

转载 select用于实现I/O多路复用

阻塞和非阻塞   阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等待连接服务请求的到来。这种情况称为阻塞(blocking)。而非阻塞操作则可以立即完成。比如,如果你希望服务器仅仅注意检查是否有客户

2009-10-27 10:46:00 1708

转载 trim函数的C语言实现

      #include       #include       #include           char   *   strtrim(char   *sDes,   const   char   *sSrc   )     {         char   *temp   =   sDes;         while

2009-10-26 10:52:00 3088

原创 C/C++/VC 实现字符串逆转的多种方法

/加了下面两个头文件,是为了在Win32工程中使用MFC的特性!#include #include #include "stdio.h"#include "conio.h"////加了下面两句,是为了能够用string(basic_string类型)#include using namespace std;int main(int argc, char* a

2009-10-26 10:35:00 1475

原创 IO多路复用

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/1441593.html近两天稍轻闲了些,便抓紧时间学习、学习再学习。在“APR分析-文件IO篇”,我们只分析了最基本的I/O操作,如文件的open、close、write和read。当然FileI/O操作不止这些,在这一篇中我们来看看A

2009-10-26 10:09:00 6769

原创 最完整的网络协议图

  

2009-10-26 00:03:00 1249

转载 AC算法原理与实现(模式匹配)

最近学习模式匹配知识,了解了KMP与BM算法后,AC的了解也必不可少。上网学习了下,把重要的知识总结一下。Aho_Corasick自动机匹配算法是最著名的多模式匹配算法之一。AC自动机算法分为3步:构造一颗Trie树,构造失败指针和模式匹配过程。1.建立一颗Trie的过程比较简单(可参考源代码)2.构造失败指针构造失败指针的过程概括起来就一句话:设这

2009-10-25 20:31:00 2693

转载 字符串匹配之BM算法

BM算法和KMP算法一样,也是构造一个辅助的模式函数来加速匹配的速度。和KMP的模式函数相比BM的模式函数更加的简单:void make_next(const char p[], int next[]){   for(int i = 0; i        next[p[i]] = i;}next[] 是一个和ASCII数目一样大的数组256个数据吧。当然如

2009-10-25 20:22:00 756

原创 BM字符串匹配算法

/****************************************** * * BM字符串匹配算法介绍 * * BM算法的基本思想是从右向左进行比较。 * 开始时仍是P(Pattern)的最左边与S(String)的最左边对齐,但首先进行Pm与Tm的比较。 * 当某趟比较中出现不匹配时,BM算法采用两条启发性规则计算模式串右移的距离,即坏字符规则和好后缀规则

2009-10-25 20:20:00 1056

转载 Wu-Manber 经典多模式匹配算法

多模式匹配的用法,多了去了!DB中对selected patterns进行数挖;安全中对suspicious keyword进行匹配;各种日期形式2009-5-20,2009年5月20日,May,20的搜索;DNA配对;各种replace功能;等等,太口水了枚举这个。

2009-10-25 20:00:00 2719

转载 毒引擎程序原理

毒引擎程序原理/***************************************************************/一.病毒分类:传统病毒,宏病毒,恶意脚本,木马、黑客、蠕虫、破坏性程序。1. 传统病毒:能够感染的程序。通过改变文件或者其他东西进行传播,通常有感染可执行文件的文件型病毒和感染引导扇区的引导型病毒;2.宏病毒(Macro):利用Wo

2009-10-25 16:18:00 995

转载 多模态字符串匹配

什么是TTMP算法?不好意思,我发布这篇文章之前,估摸是没有其他地方能找着该算法的,因为那是俺生造的。TTMP是啥意思呢?是Terminator Triggered Multi-Pattern 的意思,也就是结束符触发多模式算法。-_-! 有点难理解,没关系,看完了也许就理解了。不过这个自造的算法有点复杂,为了保证大家能够顺利阅读,请大家配合做一个测试:拿出你的手表,或者其他计

2009-10-25 16:16:00 1238

转载 使用MAP文件快速定位程序崩溃代码行

作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。我们更为关心的是程序中的哪一行导致了系统崩溃,这样我们才能有针对性的进行改正。 在VC中,我们可以利用出现程序崩溃时VC的自动跳转,定位到出错代码行。但在

2009-10-25 16:13:00 512

原创 如何分词?

常用的分词算法有正向最大匹配、逆向最大匹配、双向最大匹配、最佳匹配法、最少分词法、词网格算法等等。最大匹配法(Forward Maximum Matching method, FMM法):选取包含6-8个汉字的符号串作为最大符号串,把最大符号串与词典中的单词条目相匹配,如果不能匹配,就削掉一个汉字继续匹配,直到在词典中找到相应的单词为止。匹配的方向是从右向左。逆向最大匹配法(Backwar

2009-10-25 16:04:00 1066

原创 环形缓冲区的实现原理

1、环形缓冲区的实现原理 环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写人。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。如果有多个读

2009-10-25 16:01:00 1607

原创 printf谈可变参数函数的实现

一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣。关键字:printf, 可变参数1. 使用情形int a =10;double b = 20.0;char *str = "Hel

2009-10-25 15:46:00 564

转载 _stdcall _cdecl fastcall 调用方式详解

在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result =function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个

2009-10-25 15:41:00 586

Effetive STL

Effetive STL C++程序员必看书目

2009-09-02

Windows驱动编程基础教程.pdf

Windows驱动编程基础教程.pdfWindows驱动编程基础教程.pdf

2009-08-14

USB课程讲义USB课程讲义

USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义USB课程讲义

2009-08-14

基于支持向量机方法的中文组织机构名的识别

基于支持向量机方法的中文组织机构名的识别

2008-07-31

C++超级链接类

C++超级链接类,可以直接使用

2008-04-10

空空如也

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

TA关注的人

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