自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (7)
  • 收藏
  • 关注

翻译 A*算法入门--A* Pathfinding for Beginners

原文地址:http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/a-pathfinding-for-beginners-r2003   本着学习算法和锻炼英文水平的目的翻译了这篇颇具名气的《A* Pathfinding for Beginners》。这篇文章详细讲述了A*算法的基础,还在文后提出了很多

2012-06-09 15:26:42 3499

转载 AOP技术研究

第一部分  引言软件设计因为引入面向对象思想而逐渐变得丰富起来。“一切皆为对象”的精义,使得程序世界所要处理的逻辑简化,开发者可以用一组对象以及这些对象之 间的关系将软件系统形象地表示出来。而从对象的定义,进而到模块,到组件的定义,利用面向对象思想的封装、继承、多态的思想,使得软件系统开发可以向搭建 房屋那样,循序渐进,从砖石到楼层,进而到整幢大厦的建成。应用面向对象思想,在设计规模更大、

2014-05-27 21:00:31 631 1

转载 Linux内核空间管理

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存

2013-08-12 10:58:09 777

转载 二分查找法的实现和应用汇总

二分查找法的实现和应用汇总在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度。时间复杂度按优劣排差不多集中在:O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n)到目前位置,似乎我学到的

2013-04-18 20:21:01 649

转载 银行家算法

银行家算法转自:维基百科,自由的百科全书银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时

2013-04-05 10:31:38 1670

转载 C++类对应的内存结构(虚函数,虚继承)

转自:http://blog.csdn.net/guogangj/article/details/2036785 提示1:对“内存结构”表示有疑问或不解的,先参考:http://blog.csdn.net/guogangj/archive/2007/05/25/1625199.aspx,本文使用的表示方法和VC6的Memory视图一致,即:左上表示低位。 提示2:下文提到的

2013-03-26 19:40:00 977

原创 STL--智能指针(auto_ptr)

STL中的智能指针不能用于引用计数,但是其优点是指针所有权自动转移和指针自动删除技术.       auto_ptr会在复制构造时,将原指针自动删除,将使用权交给其复制的对象.          例子:   //源码  template  class auto_ptr{     public:          explici

2012-12-27 15:45:03 594

转载 重建二叉树(先序+中序 : 中序+后序)

由中序遍历 分别和前序遍历,后序遍历进行建树的方法: // 由中序和后序遍历序列进行建树, 返回根结点指针 Node * InPostCreateTree(int *mid,int *post,int len){     if(len == 0)         return NULL;     int i=len-1;     while(post[len-1] !=

2012-12-17 10:40:22 531

转载 C++ Placement New

原文地址:http://hubeihuyanwei.blog.163.com/blog/static/28205284201171722359640/     placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:

2012-12-13 08:58:27 429

原创 Linux进程通信

2012-10-26 10:17:56 1056

原创 LINUX创建进程

Linux通过 Task_struct 结构体来管理进程信息,包括进程的基本信息、内存信息、tty终端信息、当前目录信息,打开文件的描述符以及信号信息等。    进程状态包括就绪/运行状态、等待状态(可以被中断)、等待状态(不可以被中断)、停止状态和僵死状态。创建进程(1) fork()    无参数,失败返回值-1,成功则在父进程中返回子进程的PID号,在子进程中

2012-10-23 21:50:44 831

原创 进程用户属性

1.  进程真实用户号(RUID)     创建该进程的用户UID为进程的真实用户号(RUID);     读取:getuid() 2.  进程有效用户号     EUID主要用于权限检查,多数情况下,EUID和UID相同,但是当设置了setuid位之后,任何运行该程序的进程均可获得该文件拥有者的权限,即EUID在此时等于程序拥有者的UID。     参考:passwd进程

2012-10-22 22:07:04 1228

转载 哈夫曼编码简介

哈夫曼编码简介2010年03月17日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com    哈弗曼编码几乎是所有压缩算法的基础,其实这个算法并不复杂,简单的理解就是,如何用更短的bit来编码数据。    我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit:字符编码A00101001

2012-10-21 19:58:29 695

转载 memcpy,strcpy,memset,memmove的函数实现

【转】memcpy,strcpy,memset,memmove的函数实现/**********************************************************公司考试这种题目主要考你编写的代码是否考虑到各种情况,是否安全(不会溢出)各种情况包括:1、参数是指针,检查指针是否有效2、检查复制的源目标和目的地是否为同一个,若为同一个,则直接跳出3、读写权限检

2012-10-21 14:47:59 636

原创 linux 程序存储结构与进程结构

linux的可执行文件拥有两种内存分配方式:存储时 和运行时     1、存储时      存储时是指可执行文件尚未调入内存中运行。这时的存储分为3部分:代码区,数据区和未初始化数据区。      (1) 代码区:顾名思义,代码区即存储CPU可执行的机器代码的区域,值得指出的是指令的立即数是存储在这个区域,并且该区域一般是只读、共享的,因为对于频繁执行的代码只有一份代码并保证代码安全。

2012-10-18 21:55:21 895

转载 Linux中的tty与pts

tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty),pts(pseudo-terminal slave)是pty的实现方法,与p

2012-10-18 16:57:59 619

转载 VC++中使用内存映射文件处理大文件

VC++中使用内存映射文件处理大文件  摘要: 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。  引言  文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等

2012-10-18 14:41:41 747

转载 Linux软连接和硬链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一

2012-09-13 10:12:20 436

转载 ubuntu下中文乱码解决方案(全)

阅读本文之前请阅读http://www.cnblogs.com/math2010/archive/2012/01/05/2312951.html  1、ibus输入法Ubuntu 系统安装后已经自带了ibus输入法,在英语环境下默认不启动。配置ibus自动启动可以在ubuntu系统菜单上选择System --- Preferences --- Startup App

2012-09-11 14:45:54 835

原创 ubuntu10.04上移植miniGUI 1.3.3

首先,你需要下载的MiniGUI 的包:http://www.minigui.com/download/libminigui-1.3.3.tar.gz    http://www.minigui.com/download/minigui-res-1.3.3.tar.gz 这两个包的下载需要你在www.minigui.com  上注册过才可以下载,免费注册的,自己去下吧http:

2012-09-11 14:23:33 1235

原创 Trie树与AC算法

作者:myjoying        时间:2012年9月10日              在我的前一篇博文《AC算法--多模式匹配(论文解析版)》(http://blog.csdn.net/myjoying/article/details/7960534)中介绍了AC算法的实现原理,但是并没有给出AC算法的具体实现。AC算法的实现必须首先解决几个问题。首先需要解决的是goto表的实现

2012-09-10 10:26:32 5340

原创 AC算法--多模式匹配(论文解析版)

早在1975年贝尔实验室的两位研究人员Alfred V. Aho 和Margaret J. Corasick就提出了以他们的名字命名的高效的匹配算法---AC算法。该算法几乎与KMP算法(http://blog.csdn.net/myjoying/article/details/7947119)同时问世。与KMP算法相同,AC算法时至今日仍然在模式匹配领域被广泛应用。         最近本人

2012-09-09 16:02:02 12030

原创 BM算法学习

BM算法全称为Boyer-Moore算法,与KMP算法相似是一种精确地模式匹配算法。一般来说比KMP算法更加高效。    与KMP算法比较     相似点:都是寻找模式串自身的规律,在匹配失效时获得最大的跳转距离;     不同点:实际操作中KMP算法是从左到右进行比较,而BM算法是从右到左。这就决定了在寻找规律的过程中,KMP算法的核心是寻找子串的相同前缀,而BM算法是寻

2012-09-08 15:58:56 2324

转载 c/c++中const用法总结

原文地址:http://www.newsmth.net/pc/pccon.php?id=10002714&nid=359712 const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 **************常量必须被初始化*************************cons的作用   (1)可以定义const常量         例

2012-09-06 09:56:49 797

原创 KMP算法学习

KMP算法是一种高效的模式匹配算法。 与BF算法的比较        在普通的匹配算法BF中,目标串和模式串的索引值都需要重新回到起点再次进行匹配,所以该算法的时间复杂度较高,达到O(m*n)。KMP算法的核心思想是寻找模式串本身的特征,在此基础上达到目标串不回溯,模式串有规律回溯的目的,以减少回溯比较的次数,降低时间复杂度,达到O(m+n)。但是这是建立在提高空间复杂度的基础上的。

2012-09-06 08:29:52 2915

原创 设计模式--对象行为模式比较

1、职责链模式(Chain of Responsibility):      使多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。      职责链模式其实我们接触的很多,例如MFC中的消息处理机制。  2、命令模式(Command):        Command模式通过将请求封

2012-09-05 14:13:12 2868 2

原创 设计模式--结构型模式比较

结构型模式为了组合类和对象以获得更大的结构而产生的一种指导性方法。(A structural design pattern serves as a blueprint for how different classes and objects are combined to form larger structures.)与创建型模式不同的是,后者是为了实现一个统一的目标,即是系统独立于如何创建、

2012-08-22 21:21:27 2103 1

原创 设计模式--创建型模式比较

在GoF的《Design Patterns: Elements of Resuable Object-Oriented Software》中列举了5类创建型的设计模式,包括工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、生成器模式(Builder)、单件模式(Singleton)和原型模式(Prototype)。创建型模式,顾名思义,是关于类初始化管

2012-08-19 21:10:50 741 1

转载 取消线程及清理工作

取消线程    取消操作允许线程请求终止其所在进程中的任何其他线程。不希望或不需要对一组相关的线程执行进一步操作时,可以选择执行取消操作。例如,用户请求关闭或退出正在运行的应用程序。另一个示例是完成由许多线程执行的任务。其中的某个线程可能最终完成了该任务,而其它线程还在继续运行。由于正在运行的线程此时没有任何用处,因此取消这个线程。取消点      仅当取消操作安全时才应取消线程。

2012-06-18 11:28:47 1301

转载 _exit和exit的区别

1. 先说一下什么是文件,文件是具有永久性存储及特定顺序的字节组成的一个有序的,有名称的集合。因此提到文件,人们常常会想到目录路径,磁盘存储,文件和目录名等内容。除了常规文件,目录文件、设备文件(包括输入输出设备,如显示器,键盘等)、管道文件等也属于文件。2. 再说一下linux下的标准库函数      linux下的标准库函数中,有一套称作高级I/O的函数,我们熟知的printf fop

2012-06-18 11:27:18 475

转载 linux_wait()与僵尸进程

在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程…… 一个进程在调用exit命令结束自己的

2012-06-18 11:25:38 674

原创 ubuntu 10.04 启动过程

我的前面的博文已经提到了linux系统的启动过程,但是由于各distribution的差异,再具体到init进程启动以后OS启动过程会有所差异。据了解Ubuntu9.04以后不再采用/etc/inittab启动,而是采用init和upstart相结合的方式。 标准的linux启动顺序是:(1)init根据/etc/inittab来配置系统-->(2)执行脚本/etc/rc.d/rc

2012-06-18 11:15:00 729

转载 ubuntu 系统服务设置 - chkconfig命令

安装命令:sudo apt-get install chkconfig(可以用sysv-rc-conf代替)原帖地址:http://blog.csdn.net/youyu_buzai/archive/2009/03/04/3956845.aspxsysv-rc-conf具有更好的可视性! 功能说明:检查、设定系统的各种服务。语法:chkconfig [--a

2012-06-18 11:13:51 1123

原创 daemon相关的文件(来自鸟哥的私房菜第三版)

/etc/init.d/* :启动脚本放置处   系统上几乎所有的服务启动脚本都放置在这里!   /etc/sysconfig/* :各服务的初始化环境配置文件几乎所有的服务都会将初始化的一些选项设定写入到这个目录下,举例来说,登录档的 syslog 这支 daemon 的初始化设定就写入在 /etc/sysconfig/syslog 这里呢!而网络的设定则写在 /etc/sysconf

2012-06-18 11:12:06 1077

转载 grep用法详解:grep与正则表达式

首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;在以前上班的公司里,由于公司是基于web的服务型网站(nginx),对正则的需求比较大,所以也花了点时间研究正则,特与大家分享下:1

2012-06-18 11:11:01 338

转载 linux下的各个目录的含义

路径名                        内容/bin                    为得到最小的系统操作性所需要的那些命令/boot                   内核和加载内核所需的文件/dev                    终端、磁盘等设备项/etc                    关键的启动文件和配置文件/lib

2012-06-18 11:09:44 409

原创 linux 系统启动过程

2012-06-18 11:08:24 392

转载 Linux管道命令

那么一条复杂的Linux命令怎样构成呢?下面来介绍几个技巧。利用输入/输出重定向在Linux命令行模式中,如果命令所需的输入不是来自键盘,而是来自指定的文件,这就是输入重定向。同理,命令的输出也可以不显示在屏幕上,而是写入到指定文件中,这就是输出重定向。接下来看看标准输入/输出重定向在构造一条Linux命令中的实际应用。1.输入重定向和输出重定向# wc aa.tx

2012-06-18 11:06:58 465

转载 匈牙利算法

本文转自大牛博客:http://www.byvoid.com/blog/hungary/ 这是一种用增广路求二分图最大匹配的算法。它由匈牙利数学家Edmonds于1965年提出,因而得名。 定义 未盖点:设Vi是图G的一个顶点,如果Vi 不与任意一条属于匹配M的边相关联,就称Vi 是一个未盖点。 交错路:设P是图G的一条路,如果P的任意两条相邻的边一定是一条属于M而另一条不属于

2012-05-28 19:16:55 476

转载 [约瑟夫环]n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...

[约瑟夫环]n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构

2012-05-25 20:43:30 815

EN 50128-2011

欧洲铁路标准,软件设计规范,2011版EN50128标准

2015-05-30

C++设计模式

《设计模式-可复用面向对象软件的基础》无疑是设计模式领域的圣经,但是抽象的表达和艰深的理论又让初学者无所适从,这里《C++设计模式》是作者在学习设计模式后的在C++语言基础上详解各种设计模式,是不可多得的设计模式参考资料

2012-07-11

gdb调试器使用手册

介绍了gdb调试器的相关的常见用法并给出了使用范例,是学习gdb的优秀参考资料

2012-06-09

PROFINET 及其同步实时通信分析

PROFINET 及其同步实时通信分析, 关于协议的帧格式和协议说明

2010-12-28

VC++数字图像识别技术典型案例源码.iso

VC++数字图像识别技术典型案例源码 很好的工程应用素材

2010-11-27

VxWorks操作系统指南

VxWorks操作系统指南 对入门学习很有帮助

2010-10-19

空空如也

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

TA关注的人

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