自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 进程的状态转换

四种进程间的状态转换: 进程的状态转换图 1.就绪–>执行 2.执行–>就绪 3.执行–>等待  4.等待–>就绪 一、进程的三种基本状态 进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。 就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。

2013-09-16 13:39:29 702

转载 二叉树的前序遍历、中序遍历和后序遍历及其算法

二叉树的基本的遍历规则有三种:前序遍历,中序遍历和后序遍历。对于每一种遍历,树中每个结点都要经过3次。前序遍历在第一次遇到结点时立即访问,中序遍历第二次遇到结点时访问,后序遍历则到第三次遇到结点时才访问。 以一棵二叉树说明其三种遍历顺序: 二叉树的前序遍历 前序遍历:- + a * b – c d / e f 中序遍历:a + b * c – d – e / f

2013-09-16 13:13:22 1049

转载 C++静态类成员

静态类成员包括静态数据成员和静态函数成员两部分。  一 静态数据成员:  类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:  1.静态数据成员的定义。  静态数据成员实际上是类域中的全局变量。所以,静

2013-09-16 13:03:18 746

转载 友元函数和友元类

采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和

2013-09-16 12:36:35 609

转载 虚函数、纯虚函数详解

1.首先:强调一个概念         定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。        定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。  2.关于实例化一个类:  有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。

2013-09-16 11:29:13 598

原创 堆排序的图解过程与其他比较排序算法视频地址

堆排序的图解过程如下:

2013-09-15 00:07:56 1723

原创 在python中编写socket服务端模块(二):使用poll或epoll

在linux上编写socket服务端程序一般可以用select、poll、epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块。 使用poll方式的服务器端程序代码: import socket import select import Queue server_address=('10.0.2.15',21345) server=socket.sock

2013-09-13 14:58:57 3774

原创 在python中编写socket服务端模块(一):使用select

本文介绍使用select编写socket服务端模块。 服务器端程序代码: import socket import select import Queue server=('10.0.2.15',21345) #SOCK_STREAM(流套接字)、SOCK_DGRAM(数据报文套接字)、AF_INET(IPv4) sock=socket.socket(socket.AF_INET,so

2013-09-13 14:45:12 2070

转载 常见算法题

一、维护O(1)时间查找最大元素的栈 问题描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作, 求栈中的最大值,该操作的时间复杂度也要求为O(1)。 可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂 度无要求。   可以创建一个类,类里有两个栈,一个栈S维持正常的push、po

2013-09-12 21:26:50 1483 2

转载 字符串匹配经典算法讲解

本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来

2013-09-12 19:38:08 1130

转载 字符串匹配常用算法

字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括暴力搜索(Brute force),KMP, BM(Boyer Moore), sunday, robin-karp 以及 bitap。下面分析这几种方法并给出其实现。假设原字符串长度M

2013-09-12 19:35:13 1030

转载 C++变量的存储类别(动态存储、静态存储、自动变量、寄存器变量)

一、动态存储方式与静态存储方式 上一节已介绍了变量的一种属性——作用域,作用域是从空间的角度来分析的,分为全局变量和局部变量。 变量还有另一种属性——存储期(storage duration,也称生命期)。存储期是指变量在内存中的存在期间。这是从变量值存在的时间角度来分析的。存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic storage

2013-09-12 19:08:01 871

转载 I/O复用中select、poll、epoll的比较

转自:http://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139809.html linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。   int select(int nfds, fd_set *readfds, fd_set *wr

2013-09-10 17:26:52 1229

原创 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类

在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容。 下面是在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类的代码, import re p=re.compile(r'^[\w\d]+[\d\w\_\.]+@([\d\w]+)\.([\d\w]+)(?:

2013-09-04 14:44:21 3311 1

原创 在python中实现生产者和消费者的例子(五):使用threading模块和全局变量

本文介绍如何用threading模块实现生产者和消费者的例子 import threading  import time import random c=0 lock=threading.RLock() #class 类名 (所要继承的类) class producer(threading.Thread):     def __init__(self,no):

2013-09-04 13:36:20 989

原创 在python中实现生产者和消费者的例子(四):使用thread模块和全局变量

本文介绍如何用thread模块实现生产者和消费者的例子 import thread import time import random c=0 lock=thread.allocate_lock() def producer(no):     global c     while True:         if c             time.sleep(ran

2013-09-04 13:32:04 1025

原创 在python中实现生产者和消费者的例子(三):使用fork和pipe

本文介绍os.fork()和os.pipe()的使用 import os import time total=0 r,w=os.pipe()  pid0=os.getpid() print '主进程',pid0 pid1=os.fork() #为了证明os.fork()有两个返回值 #print '测试',pid1 #os.getpid()值不是固定的

2013-09-04 13:27:15 1306

空空如也

空空如也

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

TA关注的人

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