自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 分治法

分治法: 1)   将问题的实例划分为同一个问题的几个较小的实例,最好拥有同样的规模 2)   对这些较小的实例求解(一般使用对贵方法,但在问题规模足够小的时候,有时候会利用另一个算法)。 3)   如果必要的话,合并这些较小问题的求解,已得到原始问题的解 1.      归并排序 算法...

2011-11-03 11:04:53

阅读数 765

评论数 0

原创 蛮力法

蛮力法:是一种简单直接地解决问题的方法,常常直接给予问题的描述和所涉及的概念定义。 1.       选择排序 算法: SelectionSort(Array a) //该算法用选择排序对给定数组排序 //输入:一个可排序数组 A[0,1,….n-1] //输出:一个已排序数组 A[0...

2011-11-01 16:21:32

阅读数 1093

评论数 1

原创 算法学习1

时间过得挺快,一晃就快毕业了。工作找好了,最近也闲的无聊,所以买了本算法书,想好好的看看算法。话不多说从最基本的算法开始: 1.       求小于根号n的最大整数。 算法:            for m                     if m*m             ...

2011-10-27 10:33:52

阅读数 488

评论数 0

原创 http服务器的实现3_http响应

在实现http响应包头之前,我们来看下http响应的格式: HTTP/version 应答码消息 Content-Type: MINE ………… ………….   正文   例子: HTTP/1.1 200 OK Content-Type: text/html

2011-09-01 22:35:03

阅读数 782

评论数 0

原创 http服务器的实现2_http请求的包头解析

http请求包的基本格式如下: 方法 /资源路径 ?参数1&参数2  HTTP/version ………….. …………… 例如: GET/jianli.pdf HTTP/1.1 Host:127.0.0.1 Connection:keep-alive User-A

2011-09-01 22:31:42

阅读数 1947

评论数 0

原创 http服务器的实现1_网络服务器的实现

前段时间看了《深入理解计算机系统》,在网络编程这一章看到了一个http服务器的简单实现,然后也想自己在windows下面实现一个简单的http服务器。        为了方面叙述,下面从实现的角度来一步步的说明怎么实现这个http服务器。其实说到http服务器也就是从浏览器发送

2011-09-01 22:30:19

阅读数 1401

评论数 1

原创 关于内联函数

看c++primer时看到一句话“把内联函数放到头文件中”。当时看了后觉的挺奇怪,如果把内联函数放到头文件中 岂不是在链接时要报错?因为会产生重复定义的错误。 但是测试了下面的代码: test.h #ifndef  ___TEST_H_ #define ___TEST_H

2011-09-01 11:09:27

阅读数 598

评论数 0

原创 串口调试程序的实现

由于需要用到串口读写程序,然后就简单的实现了个串口读写程序(基于MFC)。首先是串口的读写,基本的函数就是CreateFile,ReadFile,WriteFile,SetCommState和GetCommState。所以首先为了更好的调用这些函数我对这些函数

2011-07-05 16:49:11

阅读数 1615

评论数 1

原创 wcout不能输出中文的解决方法

<br />当然我也是从网上找的资料,原理不懂。<br />基本上,如果wcout不能输出中文,只需要加上这句语句就可以:<br />wcout.imbue(locale(locale(),"",LC_CTYPE));<br />...

2011-05-25 15:37:00

阅读数 514

评论数 0

原创 快速排序的实现

<br />快速排序的思想跟归并排序的思想是一致的,也就是把一个大的问题,分成2个小的问题,然后再合并.<br />概念简单来讲就是,首先在待排序队列里面找到一个数,比这个数小的放到这个数的左边,比这个数大的放到数的右边,然后分别对左右两边进行递归排序.<br /&g...

2011-05-19 00:48:00

阅读数 446

评论数 0

原创 归并排序的实现(again)

<br />归并排序也就是把一个数列分成两份,首先分别对2份进行排序,然后把这2份一起排序,典型的递归实现.<br />实现代码: MergeSort.h:<br /><br />//归并排序时间复杂度:NlogN,但是由于存在<br />...

2011-05-18 00:09:00

阅读数 321

评论数 0

原创 堆排序的实现

<br />堆排序也就是一个简单的完全二叉树,满足的规则是每个父节点大于(小于)子节点,一般通过线性队列来实现,所以一般是通过数组来实现的。<br />基本的排序步骤是:<br />1.创建堆 CreateHeap<br />2.依次的取出头节点(也...

2011-05-16 21:01:00

阅读数 333

评论数 0

原创 希尔排序的实现

希尔排序,也就是对于一列数据,对间隔为k的数据进行排序,也就是对于 1、1+k、1+2×k....;2、2+k、2+2×k、....;..... 分别进行排序,这样 间隔为k 的数据就是有序的了,然后逐渐减小k的值,知道k为1的时候,也就是对整个数列进行完整的排序了。希尔排序关键的地方是 k值怎么...

2011-05-12 00:08:00

阅读数 354

评论数 0

原创 插入排序的实现

<br />插入排序,就是吧第p位置的数据,插入到容量为p的有序容器中。<br />当然,一般来说,我们可以重新分配一块新的空间,用来存放有序的数据。但是下面的例子是在就的空间上进行排序,每次插入操作就是把第p位置的数据插入到0~p的位置上:<br /><...

2011-05-11 23:58:00

阅读数 332

评论数 0

原创 线程管理_1

<br />这里先来进行线程的入门,没有涉及到任何同步的问题,关于同步的问题后面再说。<br />主要函数:<br />_beginthreadex  (注意一般不要用 CreateThread,以为这个函数在调用c库函数的时候不是线程安全的,具体细节我也不明白...

2011-04-29 16:17:00

阅读数 349

评论数 0

原创 进程管理

<br />进程管理(这里不涉及到进程间通讯)<br />主要函数:<br />CreateProcess。<br />直接来看刚才写的一段程序。<br />2个进程,(主)进程创建5个子进程并给他传递打开文件的句柄,让5个子进程分配对文...

2011-04-28 19:21:00

阅读数 392

评论数 0

原创 内存管理_3

<br />内存映射文件实例——dll<br />(本文只是为了自己需要以帮助自己以后能很快的回顾,不适合其他人来阅读,如果您需要学习dll的编写或者dll 的2种调用方式 那么请继续google)<br />动态库的好处在前面说过,可以动态调用,节约内存空间,...

2011-04-28 15:51:00

阅读数 374

评论数 0

原创 内存管理_2

<br /><br />(本文只适合本人以后复习使用,如果你想要学习知识点,可能会浪费你的时间)<br />内存映射文件: 我们知道dll是通过内存映射来实现动态的内存访问的,这样可以让多个进行同时访问同一内存空间。<br />其实dll就是利用的内...

2011-04-27 17:17:00

阅读数 425

评论数 0

原创 内存管理_1

<br />(本文只适合本人以后复习的需要,不适合其他人的学习,如果你不小心进来了,那么不好意思浪费您的时间了)<br />几个重要的函数:<br />GetProcessHeap//得到当前进程的主堆,注意这个失败返回的是NULL而不是INVALID_HAND...

2011-04-27 16:36:00

阅读数 636

评论数 0

原创 异常处理

<br />(下面的内容主要是让自己以后在使用中能够很快的想起并使用,不适合别人来学习知识点的,所以如果你不小心Google进来了,那么浪费你时间了)<br />在windows里面异常处理主要是通过:<br /> _try,_except,_finally&...

2011-04-27 10:31:00

阅读数 516

评论数 0

原创 文件管理_2

<br />这里主要提到的是注册表的注册,如果你不小心google到了这里想知道操纵注册表的一系列函数的使用,那么请看这篇文章:<br />http://dev.firnow.com/course/3_program/c++/cppxl/20090821/169471.ht...

2011-04-26 17:35:00

阅读数 377

评论数 0

原创 文件管理_1

<br />跟文件管理相关的就平时应用来说最重要几个函数如下:(如果你想通过这篇文章知道怎么使用这些函数,那么抱歉,我这里写的只会浪费你时间)<br />读写文件:<br />CreateFile//打开(或者创建)文件句柄<br />ReadFil...

2011-04-26 17:16:00

阅读数 560

评论数 0

原创 Groupsock的分析_2

<br />前面说了Groupsock的基类,现在来整体的分析下Groupsock:<br />首先是:<br />      removeAllDestination<br />      removeDestination<br />...

2011-04-12 18:36:00

阅读数 2278

评论数 1

原创 Groupsock的分析_1

<br />      在进行Groupsock分析之前先复习下 组播(多播)的知识.<br />      首先组播 是基于 UDP的,所以在后面代码里面会出现:sock(AF_INET,SOCK_DGRAM,0); SOCK_DGARM就是代表是UDP进行通信。<...

2011-04-03 18:30:00

阅读数 3671

评论数 0

原创 TaskScheduler的分析_4

前面分析了跟TaskScheduler相关的3个链表,那么现在就剩下最后一个doEventLoop函数了。在BasicTaskScheduler0中对doEventLoop进行了实现,它是通过循环调用 SingleStep 来完成功能的。在这里需要提一下为什么要通过  while(1) 这个循环来...

2011-04-03 00:13:00

阅读数 2961

评论数 0

原创 TaskScheduler的分析_3

前面提到了跟 DelayTask相关的一个链表,现在来看跟BackgroundHandling相关的另一个链表:HandleSet.这个链表跟:setBackgroundHandlingdisableBackgroundHandlingmoveSocketHandling这3个函数相关。其中set...

2011-04-02 14:53:00

阅读数 1285

评论数 0

原创 选择排序

<br />前面提到了仿函数,那么这里就利用仿函数实现了选择排序:<br />首先定义一个仿函数模板:<br />template<typename T> struct my_larger:public std::binary_function&l...

2011-04-02 12:50:00

阅读数 472

评论数 0

原创 TaskScheduler的分析_2

<br />前面说到了 在 TaskScheduler中可能包含3个链表。<br />然后我们继续看TaskScheduler的子类 BasicTaskScheduler就可以到里面有一个这个成员变量:<br />DelayQueue    <br /&g...

2011-04-01 16:42:00

阅读数 981

评论数 0

原创 仿函数

<br />仿函数的主要目的是让对象的操作与函数操作一致,然后就是为了能进一步扩展满足一些适配器的操作。<br />所以根据上面2个目的,仿函数有2点需要实现。<br />1. 让对象的操作与函数的操作一致。 那么对象只需要 重载 operator()  就可以...

2011-04-01 10:02:00

阅读数 494

评论数 0

原创 TaskScheduler的分析_1

virtual ~TaskScheduler ()virtual TaskToken scheduleDelayedTask (int64_t microseconds, TaskFunc *proc, void *clientData)=0virtual void unscheduleDelay...

2011-03-31 19:49:00

阅读数 2683

评论数 1

原创 归并排序的实现

<br />定义:<br />归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。  (从百度百科上摘抄下来的)<br /> <br />...

2011-03-31 13:44:00

阅读数 464

评论数 0

原创 UsageEnviroment的分析

<br />UsageEnvironment是live555中最基本的几个基类之一,不过它的功能很简单,就是对错误的处理和输出。<br />在这个类里面有几个虚函数:<br />operator <<  用于输出信息<br />setRe...

2011-03-30 20:46:00

阅读数 1003

评论数 0

原创 计数排序的实现

<br />定义:<br />计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。(来自维基百科)<br /> <br /...

2011-03-25 15:49:00

阅读数 381

评论数 0

原创 RB Tree的部分实现

<br />跟前面一样,主要是平衡度的问题,RB树是通过节点上的颜色来识别是否平衡的。那么关键是 怎么知道是否平衡,怎么恢复平衡。<br />首先 每个节点有一个成员用于记录节点的颜色:<br />enum Color_node {red=0,black}; ...

2011-03-25 14:12:00

阅读数 479

评论数 0

原创 桶排序的实现

<br />最近CSDN不知道搞什么,很慢,太无语了。<br />桶排序定义:<br />N个数,区间在[0,1),把这段区间划分成N份,然后把这N个数依次放到这N份区间中去,注意这里每份空间都代表一个桶,然后对桶里面的元素进行排序,最后把桶结合起来就成了有序的...

2011-03-24 17:57:00

阅读数 533

评论数 0

原创 AVL Tree 的实现

<br />首先 AVL 树是平衡二叉搜索树,所以首先 必须满足搜索树,即l_child值<parent值<=r_child值。这个在前面已经实现了。插入和删除不停的递归就可以。<br />其次 AVL 树是平衡二叉树,他的平衡条件是左右子树的深度之差小于2.而...

2011-03-22 15:04:00

阅读数 2725

评论数 0

原创 鸡尾酒排序的实现

<br />定义:<br />也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序, 来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此演算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。(摘抄自 百度百科)<b...

2011-03-20 18:55:00

阅读数 489

评论数 0

原创 冒泡算法的实现

<br />定义:<br />冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数...

2011-03-20 18:06:00

阅读数 370

评论数 0

原创 二叉查询树的实现

因为在关联容器里面主要的内部结构是RB-tree,而红黑树又是一种平衡二叉树,平衡二叉树又是属于二叉查询树,所以按照 侯捷介绍的顺序依次来实现,今天先把二叉查询树这种最简单的实现掉:首先,二叉查询树 不像heap中完全二叉树那样内存分配用线性存储的,二叉查询树一般内部存储是通过链表来实现的,首先来...

2011-03-18 13:31:00

阅读数 534

评论数 0

原创 heap的分析

<br />以前对堆都没什么了解,今天看了书之后才终于明白了,堆其实就是一个完全二叉树,对于查找和排序时间复杂度可以很好的降低:<br />heap分为两种:一种是max-heap一种是min-heap,按照书上的,我们假设为 max-heap,即根节点为最大值:<b...

2011-03-16 12:45:00

阅读数 428

评论数 0

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