自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

my_et的专栏

stay hungry stay foolish!

  • 博客(62)
  • 收藏
  • 关注

原创 COM 学习笔记

好久没有写博客了,今天记录下,作为一个程序猿,多记录点东西还是好的。最近比较懒,总是想写点东西来着,终于动手了,当你觉得晚的时候恰恰是最早的,勉励下自己梳理一下一个进程内的 COM 组件,从代码组织到真正创建的过程1. 首先前期编译的时候,利用ALT模板可以方便的将创建 COM对象的函数加入到一个特定的段中,这一点利用了编译器的特性,首先创建一个 类似于 SA 段,命名为s

2015-03-30 00:49:25 692

转载 vs2005 远程调试方法

VS2005中远程调试的配置方法在VS2005中不能使用VS2003的远程调试程序。VS2005远程调试的方法:(1) 远程端:安装VS2005光盘"X:\vs\Remote Debugger\x86\ rdbgsetup.exe"。或者直接运行或copy本地端的: "Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote

2014-08-26 20:24:33 940

原创 Oracle连接出现没有监听程序

今天需要用PL/SQL连接数据库,发现好久没有用Oracle了,连接总是出现提示没有监听服务。网上收集了一下资料原因如下    首先确保tnsnames.ora文件中HOST 属性和listener.ora属性都为自己目前的IP地址,之前配置的是Localhost总是显示找不到监听程序。    其次,tnsnames.ora中的SERVICE_NAME属性和listener.ora的开

2014-03-17 10:49:42 1216

转载 Windbg连不上VMware虚拟机的原因

这两天搭建VmWare+WinDBG的双机调试环境,Server OS是Win7,Guest OS是Win XP SP3.按照网上的教程安装后之后,启动虚拟机,选择调试系统,打开WinDBG,系统启动之后总是连接不上。后来找到一个原因,如下:       按照网上的说法,配置C盘根目录下的boot.ini文件,在一行[operating systems]后面添加/debugport=som

2013-12-13 15:41:50 1817

原创 找工作总结

上个月算是结束了找工作的旅程,写些东西总结一下,一是为了记录一下找工作的过程,二是为了给后来求职的同学一点参考。  一. 关于招聘会        主要有两种形式:一种是专场招聘会,另外一种是很多企业一起的集中招聘会。建议选择前者,因为前者在成功率和目标性上都要优于后者。可能在那种大型的招聘会上投了很多简历,但是能收到回复的确实很少。二.  关于简历        简历

2013-11-07 10:58:39 939

转载 自我驱动力--转自豆瓣

我在日记里写过一件事,我曾经有两位下属小伙伴。一位名校本科毕业,一位是不知名学校大专出身。 有一次我所在的NGO举办完一场大型活动,需要收集媒体报道的资料,那位名校毕业的小伙伴,出门去找了附近的两个书报亭,回来跟我双手一摊说,“我问了,那份报纸都卖完了”。我大发雷霆,说“你至少给我找上个10个书报亭,或者去网上征集,或者直接去报纸索要,总之你给我搞定这件事。” 结果他去到第四个书报亭的时候,就

2013-10-29 15:14:02 951

转载 printf的实现

研究printf的实现,首先来看看printf函数的函数体  int printf(const char *fmt, ...)  {   int i;   char buf[256];     va_list arg = (va_list)((char*)(&fmt) + 4);    i = vsprintf(buf, fmt, arg);   write(buf

2013-10-16 14:29:17 1122

原创 最大流

这个月看了一下最大流的相关知识,记录一下对一个流网络,每条边上有一定的容量和实际的流量,怎样用一种方法求得这个网络的最大流量。Ford-Fulkerson方法,为什么叫做方法,不多说了。以BFS为例:path 记录顶点的流来自于那个顶点flow记录流向该顶点的最小流量源点S入队列DO    顶点V出队列    对于所有的V指向的顶点P    IF P

2013-09-30 21:57:02 657

原创 九月小结

十一前跑了两个星期,记录一下找工作的过程       首先不得不说找工作比较耗体力,非常耗。。。每天都是坐一个多小时的车去鄙视,如果一个公司在下午四点以前笔试,基本上就不用休息了,找工作确实要有针对性,选好了中意的公司就去用好好准备,不能哪儿都想去,到头来成功率有待商榷。1.创新工场。这是我面的第一个找到像样的公司,笔试和一面过了,但是感觉它和一般公司不一样,如果一面过了会让你选三个公

2013-09-30 21:26:30 476

原创 中位数和顺序统计

前言SELECT算法,在n个数中寻找第i大的元素1.将n个数5个一组,分成几组,然后在每个组中利用插入排序求取其中位数2.将上一步得到的元素中以同样的SELECT方法取得其中位数3.利用第二步中得到的中位数对数组进行PATION,之后如果i=k,返回,i1.在算法

2013-09-08 15:27:05 553

原创 Effective C++总结

声明构造函数的时候应该尽量往前面加上explict防止隐式的转换,这样可以提高安全性条款2:对于常量尽量用const 代替#define,对于函数以inline代替#define条款3:尽量的使用const.对于指针情况。        如果const出现在*的左边,那么内容是常量,如果是右边则指针是常量。而类型和const的位置可以交换A const * p;

2013-08-28 22:29:53 456

原创 编程之美--买书问题

有个人去买书,买不同的本数有不同的折扣,一共有5种书,买的书种类不同,本数越多折扣越高,折扣表如下:本数12345折扣00.050.10.20.25        买两本不同的书将得到2*0.05的折扣,3本得到3*0.

2013-08-27 11:12:08 604

原创 设计模式总结

看了大话设计模式一书第二遍了,有新的体会,现将其总结一下1.简单工厂模式        应该是最简单的设计模式了,在实际应用中如果多个对象的操作有相同的逻辑,只是实现的细节不同,那么可以考虑利用简单工厂模式。例如加减乘除同样都是运算符,需要对两个数进行计算然后输出一个结果,这里可以将其抽象出四个类。根据不同的要求实例化出不同的运算符类。在我之前做的一个项目中,需要根据点击下拉框中选

2013-08-23 10:43:55 542

原创 c++智能指针与内存管理

c++中当我们需要新分配内存的时候需要手动的去调用new显式的分配一块内存,如果我们在任何中new(如函数中申请空间返回忘记释放,或者在函数执行过程中出现异常,没有执行释放语句)了空间,在不需要使用后忘记了调用delete这块地址的话就会造成内存泄露。      为了解决这一个问题引入了智能指针。智能指针实际上是一个指针的托管对象。它的构造函数是这样声明的:template

2013-08-22 17:33:21 673

原创 面试准备

1.编程风格在判断的时候一般用‘A’==a,这样在编程中误将==写成=编译器会帮我们检查出来2.类型转换float a=1.0;coutcout3.判断一个数是否是2的N次幂  !(X&(X-1))4.以下代码功能(a&b)+((a^b)>>1) 求a,b的平均数第一项求ab相同位的一半,第二项取ab相异位的一半5.不用判断语

2013-07-29 17:26:24 617

原创 杂记

1.用位存储40亿个40亿以内的整数申请40Y位的空间,以一个int32位计算的话申请一个40Y/32位的数组,然后将对应位置位即可

2013-07-29 09:32:16 438

原创 线性时间排序习题

1.设计一个算法,对N个介于0~k之间的数进行预处理,然后能够在O(1)的时间给出有多少个元素介于[a,b]之间首先肯定要考虑a,b和K的相对大小,这里就假设01.参照级数排序累计统计2.对累计统计的结果中计算c[b]-c[a-1]

2013-07-22 11:21:42 873

原创 快速排序习题

1.修改快速排序中的PATION算法,使得返回q,t,其中pPATION A,p,rq=p-1;t=q;

2013-07-20 16:36:55 927

原创 算法导论 堆排序习题

1.怎样利用最大(小)堆构成的优先实现先进先出队列或者栈开始看这道题没有弄清以什么优先,原来是先进先出队列只要保证先进来优先级高,栈保证后进来优先级高,然后每次弹出堆顶元素即可2.如何在logN时间里删除一个元素思路和如何在堆中增加一个元素是一样的,因为堆要的形状要保证是一颗完全二叉树,决定了增减操作只能在堆的尾部进行。        1.先把该元素和堆尾元素交换,并将堆大

2013-07-16 16:36:23 1097

原创 概率问题总结

最近学习了一下算法导论中的概率分析和随机算法现总结如下1.雇员问题一个公司面试N个面试者,一但发现当前这位员工比之前的面试者都要好,那么就会雇用他抽象为一个排列问题,如2,1,3,5,4, 那么2,3,5会被雇佣因为1比2要小,4比5小。进一步可以变为一个判断排列中逆序对的问题,初始序列为1,2,3,4,5那么根据规则,所有人会被雇佣。而序列中每增加一个逆序对,被雇佣的人数就会

2013-07-14 20:33:15 889

原创 C++ 多态,虚函数

在c++中可以用基类指针指向其派生类,如果一个派生类继承多个父类,那么如何通过基类指针访问同名的成员呢?        如果基类A,基类B中都有函数fun(),派生类在同时继承A、B后在内存中根据继承的顺序分配内存,例如在继承列表中出现的是B,A,那么B中的成员在A的之前,当我们用B的指针去访问时候,编译器便将指针指向B的成员,同理用A的指针去访问,编译器便将指针指向A的成员。clas

2013-07-01 15:26:55 538

原创 跳跃表--加速链表访问

之前一次去实习笔试的时候,有一题笔试题是这样的,设计一个队列,使得它在高强度的插入和删除下任然具有较好的访问速度。当时想,数组虽然好,访问的时候是O(1)但是一旦涉及到删除和添加元素的时候,性能就下来了。        由此想到STL中的vector,往里面添加元素是是添加在末尾,一旦超过了其内存大小,在分配一块更大的内存(原来的两倍)然后将旧元素拷贝到新的内存空间去,这样虽然在拷贝的时候时间

2013-06-30 22:08:56 1408

原创 字符串匹配--KMP算法

最近学了一下KMP匹配算法,这个算法在字符串匹配中还是很有名的一般的字符串匹配算法是这样的1.比较目标串和待匹配的字符串,一个字符一个字符的比较,如果比较到待匹配串的末尾,则返回匹配成功的位置;2.发现有不同的停止比较,将目标串向后移动一格,待匹配字符串重新回到起点,回到步骤1,继续匹配。这个算法的优点是思路简单,有点像排序中的冒泡排序,选择排序的样子。缺点就是有大量的重复计算。

2013-06-26 21:02:19 475

原创 Tire树 求出现次数最多单词

Tire树 又称字典树       Tire树 核心的思想是以空间换时间,每个节点下面分26叉,需要统计一个单词比如abc,这时候先找根节点,然后由a分支到a节点,然后在a节点里面找b分支,然后到b节点去找c分支,最后将该节点的单词计数器加1.1.Tire树每个节点的定义class TireNode{public: char c; int count; Tir

2013-06-14 16:51:38 1007

转载 c++ 虚函数

我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};    virtual void DoSomething() { cout  "Do

2013-06-07 09:25:01 481

转载 deque list vector 区别

1. vector        就是一个在堆上建立的一维数组,因为在堆上,所以对其进行erase( ), resieze()等操作;还有一点就是,vector不用担心越界当空间不够用的时候,系统会自动按照一定的比例(对capacity( )大小)进行扩充。 vector最大的优点莫过于是检索(用operator[ ])速度在这三个容器中是最快的,还有就是在vector序列末尾添加(push_

2013-06-06 20:08:27 560

转载 数据挖掘常用算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.不仅仅是选中的十大算法,其实参加评选的18种算法,

2013-06-05 15:15:58 677

原创 树的非递归遍历

在写的时候可以先写下以下算法,然后将其转化为代码先序1.访问p节点2.节点入栈3.p=p->Lchild4.访问p5.压栈p6..p=p->Lchild7.p不为空 goto step 28.栈不为空,弹栈p,否则goto step 109.p=p->Rchlid,goto step 410.结束void PreOreder(Node *bt)

2013-06-04 15:32:16 478

转载 面向对象编程六大原则

一、单一职责原则:全称:“Single-Responsibility Principle”说明:就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化

2013-05-29 19:50:30 431

原创 从一个链表中等可能取出若干节点

题目是这样的:给定一个单向链表,遍历一遍,从中选出M点,要求每个节点被选中的概率相同。这主要是一个概率论的问题,既然是单向链表,分两种来讨论1.如果我们事先就知道链表的长度那么这个问题就变为一个经典的抽签问题--在不知道前面人抽到的结果情况下,每个人抽中奖的概率是一样的证明如下:(1).假设一个票箱里面有N张票,其中M张是奖票,那么第一个人抽中的概率是M/N,抽不中的概率是(N

2013-05-28 21:26:22 856

原创 按层次/广度遍历二叉树

原理和图的广度优先遍历一样算法描述如下1.节点入队列2.取队列首元素,访问之3.如果左子树不为空,入队4.如果右子树不为空,入队5.队列是否为空?否,GOTO STEP 26.结束关键代码:void printtree(Node* bt,Que *que){ if(bt==NULL) { cout<<"空树"<<endl; return ;

2013-05-26 22:11:11 498

转载 c c++ 分配内存区别

一、C语言动态内存分配    要实现动态内存的分配,除了利用含指针成员的结构体之外,还需利用C语言提供的几个标准库函数。(使用时应包含头文件“alloc.h”或“malloc.h”或“stdlib.h”)   1.malloc函数  函数原型为void *malloc(unsigned int size);在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返

2013-05-24 10:16:43 1108

原创 判断可能出栈顺序--动态规划解法

先给定一个进栈序列(如1,2,3,4,5),可以随意弹栈(如在3进栈之前,2就可能已经进栈然后出栈了)然后给定一个序列如5,4,3,2,1和3,4,5,1,2,判断是不是其弹栈序列。我是用动态规划强行弄出来的,弄出来后查质料得知这是一个卡特兰数问题。。。。思路:例子4,3,5,1,2一旦一个数弹栈了比如上面序列中的4,在它进栈之前又在它后面出栈的元素,如1,2,3在它之前进

2013-05-20 14:36:59 1102

原创 DrectX 切割 知识点

HRESULT D3DXIntersect( _In_ LPD3DXBASEMESH pMesh, _In_ const D3DXVECTOR3 *pRayPos, _In_ const D3DXVECTOR3 *pRayDir, _Out_ BOOL *pHit, _Out_ DWORD *pFaceIndex, _Out_ FLOAT *pU, _

2013-05-19 15:23:54 583

转载 MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第

2013-05-18 20:49:47 554

转载 C++ 知识点

一.const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变

2013-05-18 20:45:40 484

转载 网络 知识点整理

1、TCP 通过以下方式提供可靠性:◆ 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它 就重发这个报文段。◆ 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。◆ TCP将保持它首部和数据的检验和。

2013-05-18 19:09:38 448

原创 搜索引擎之我看

最近在学习算法的时候有点迷上了搜素引擎,各处搜集零散的资料,看了相关的书籍,发现这个搜素引擎真是一个集大成的东西啊。仔细想想吧好多学过的算法,网络知识都串起来了。现在写写我对搜索引擎的认识,也给想学习搜索引擎的童鞋一点借鉴。        在我看来搜索引擎工作主要分四个步骤:1.网页抓取2.对抓取的网页形成索引3.数据的存储4.检索以及呈现            首先谈

2013-05-18 19:03:31 622

翻译 DirectX中使用顶点缓存

介绍        虽然DirectX 8已经出来许久了,但是很多人似乎在如何正确使用顶点缓存上遇到问题。即使随便去那些DirectX论坛上看一眼,都会发现很多困惑的程序员或者游戏开发者在抱怨为什么他们的游戏的帧率没有他们认为的那么高。        为了给那些需要的人提供帮助,我决定弄一个小的帮助文档帮助那些人解除疑惑。(需要说明的是我没有写什么‘新’的东西,我只是将那些MSDN和其他的

2013-05-17 21:21:57 1110

转载 tcp四种定时器

TCP使用四种定时器(Timer,也称为“计时器”):重传计时器:Retransmission Timer坚持计时器:Persistent Timer保活计时器:Keeplive Timer时间等待计时器:Time_Wait Timer。 (1)重传计时器:Retransmission Timer重传定时器:为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时

2013-05-17 15:52:30 506

空空如也

空空如也

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

TA关注的人

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