自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 [转]How do I use cygwin1.dll with Visual Studio or MinGW?

Before you begin, note that Cygwin is licensed under the GNU GPL (as indeed are all other Cygwin-based libraries). That means that if your code links against the cygwin dll (and if your program is cal

2010-05-14 22:07:00 2142

转载 Qt自定义控件(插件)并添加到QtDesigher

之前使用Qt的时候都是手写代码的(因为批量按钮可以使用数组实现),但当界面越来越复杂时,这种开发效率就太低了;后来就开始使用QtDesigner,但要使QtDesigner支持我自己写的控件,需要提升或插件的形式(在中有介绍).结果看了之后,觉得提升的方式简单而不灵活,故使用插件法实现;步骤如下:[具体可参照第三方开源组件Qwt部件库的插件类的实现方式,个人感觉特别规范]

2010-01-19 08:56:00 11847

原创 求数组的最大子段和(O(N^3)-->O(N^2)-->O(NlogN)-->O(N))

三层嵌套循环-->二层嵌套循环-->分治递归-->动态规划 /********************************************************************* DESCRIPTION: Algorithm 20100117 MaxSubArraySum()** AUTHOR:Neesky----O(N^3)-->O(N^

2010-01-17 17:58:00 1527

转载 NCR洗牌算法

 NCR的Shuffle(混淆)算法,做ATM的很多都知道,并且都使用有封装好的现成接口,但是基本没有多少人知道其算法原理,所以将原理写在这,给需要的人提供些许帮助。以下为举例。比如要Shuffle的数据(J):0123456789 123456参与Shuffle的Key(K):12345678Basic Shuffle Key(L):19F2 C827 6AD0 839B

2010-01-16 09:46:00 834

原创 [GLD-EXAM] 单链表的快排算法 (利用头插法)

 /********************************************************************* DESCRIPTION: Glodon20091123 ** AUTHOR: Neesky** DATE:2009-11-23****************************************

2009-11-23 23:51:00 981

原创 [SID-EXAM]利用后缀数组求两个字符串的最长公共子串,较dp效率要高

值得注意的是:Compare_Substring 函数的实现,数组中存的是字符串的首地址,所以在调用qsort时候实现的比较函数应该是二维指针,以及isInSameString函数在判断两个相同的字符串常量时失效,要特殊处理一下字符串相等的情况。可以在判断时处理,其实也可以在进入函数时直接处理字符串完全相等的情况。同时给出利用后缀数组求最长重复子串的函数。 /*****************

2009-11-11 17:32:00 1176

原创 [BD-EXAM]20091106在一棵一般的二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个

 1.在一棵一般的二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个。指定元素找不到时返回EMPTY_NODE,请用C语言实现,相关数据结构与函数声明如下: struct Node {          int iValue;            int id;          Node *pLeft;     Node *pRight;

2009-11-07 00:38:00 837

原创 [SHL-SORT]Shell排序的实现,注意dist=(dist+1)/2 是不断变化的距离,初始时是(N+1)/2

Shell排序的实现,注意dist=(dist+1)/2 是不断变化的距离,初始时是(N+1)/2,注意这个公式但dist为1时,dist之后永远为1./********************************************************************* DESCRIPTION: Shell Sort [d[i+1]=(d[i]+1)/2],

2009-11-03 19:32:00 1183

原创 [BCZ-HEAP]堆排序的实现,包括建堆,siftup(主要用于建堆)和siftdown(主要用于调整)函数的实现

堆排序的实现,包括建堆,siftup(主要用于建堆)和siftdown(主要用于调整)函数的实现,注意siftdown函数中的推出循环的条件,别把break落下了/********************************************************************* DESCRIPTION: 堆排序 - 连个重要的siftdown 和 sift

2009-11-03 16:18:00 3034

原创 [BUC-2.10]利用分治的思想求无序数组中的最大值和最小值以及求第二大的值(分治的思想可以使得比较的次数1.5N-2)

      利用分治的思想求无序数组中的最大值和最小值以及求第二大的值(分治的思想可以使得比较的次数1.5N-2),相比较而言顺序遍历的方式在比较次数上较分治思想要比较更多的次数。      在利用分治思想的时候要考虑的情况挺多的,尤其是求第二大的数的时候,一定要考虑问题要全面。 /****************************************************

2009-11-03 10:34:00 1622

原创 [BUC-2.21]给出一个正整数,输出它所有可能的连续自然数(两个以上)之和的算式

利用等差数列的求和公司进行数序计算,判断计算的记过是否为整数来判断,是否合理。根据公式n=((1-2a1)+sqrt((2a1-1)^2+8Sn))/2 ,其中a1在合理的范围内进行试探,1如何sqrt和n均求出为整数, 则根据n和a1输出这个连续自然数的和。 /** include files **/#include #include #include using

2009-10-27 23:42:00 1796 1

原创 [TIV-EXAM]二叉树的非递归遍历算法

二叉树的非递归遍地算法:提供一种最简洁的先序遍历算法,利用stack实现。 二叉树方便起见用满二叉树数组的形式实现。注意这种形式压栈的时候是先右子树后左子树,这样pop出栈的时候就会先左而后右。这种简洁的形式和树的程序遍历用queue实现很像。另外后续遍历也有一种最简洁的形式。(1--先序遍历的非递归算法的最简洁形式)(2--后序遍历的非递归算法的最简洁形式)(3--中

2009-10-24 23:34:00 652

原创 [PFW-EXAM]二路归并的排序算法(递归)

原题是为了找到两个while(){},以及如果是动态申请的内存,要释放。/******************************************************************** PerfWorld-2010-10-24 二路归并递归算法的改错** AUTHOR:Neesky** DATE:2009-10-24***

2009-10-24 21:07:00 649

原创 [TEC-EXAM]有关虚析构函数的问题

以多继承中基类中的析构函数是否是virtual有关......多态的形式调用Base1 *p=new Derived;或者 Derived der;Base1 *p=&der;最后delete p的时,是否调用了其他的的如之类der中的函数以及Base2的析构函数相关。可以看出如果没有virtual的话,属于安全有问题的,可能产生memory leakage的问题。#include

2009-10-22 19:27:00 618

原创 [NetQ-EXAM]考察点极其简单也很常见

考察了拷贝构造函数和赋值构造函数,以及通过子类构造时调用基类构造函数时候,基类构造函数调用同名的virtual函数(基类和之类中都有,同名覆盖),调用时仍然是调用的基类中的该函数。/********************************************************************* DESCRIPTION:Base Class**

2009-10-21 22:11:00 641

原创 [MRG-EXAM]单链表的快速排序

快排是分治的思想,快排中的Partition函数是关键,用于定位某元素的位置,并将问题按照该元素划分成两个部分。 以下写出了,常见的数组的快排以及单链表的快排。以下单链表的快排算法,用的是尾插法实现Partition函数,用头插法实现Partition函数可能效率相对较高,不用遍历找到tail结点。有兴趣的时候再改成头插法。 /** include files **/#include

2009-10-19 21:24:00 646

原创 [ALIB2-EXAM]数字的S形连续打印

打印数字,一行三个,从第1行开始,奇数行正序,偶数行逆序。即S形打印。(面试:一分钟写出程序) /***************************************************************************** DESCRIPTION: ALiBaBa-B2B Interview 2009-10-17*

2009-10-17 17:36:00 589

原创 [ALIB2-EXAM]有关memmove时的char *p=" "和char p[]=" "的区别

char *p=" "中是const的字符串,char p[]=" "不是const的字符串,前者不允许修改,修改导致运行时错误。http://baike.baidu.com/view/1026882.htm 百度百科中memmove举出的这个例子就犯了这个错误。 /************************************************************

2009-10-17 17:32:00 641

原创 [BD-EXAM]求字符串的最长连续数字子串

用nowLen记录当前的连续数字串长度,maxLen记录当前的最长连续数字串的长度,tailPos记录当前最长连续数字串的最后一个元素的下标。考察当前位时候,根据是数字还是非数字字符进行判断。是数字,看是不是和前面的字符是连续的,是连续的,则设计nowLen,并考察此时nowLen是否超过了当前的maxLen,超过了则设置maxLen和tailPos,不是数字则将nowLen直接置为0。[程序

2009-10-16 19:04:00 1031

原创 [TB-EXAM]小飞电梯-停一层(暂未考虑停N层)

电梯有N层,从底层到第i层的人有iFloorPassengerNum[i]个人,电梯只能停一次的话,求停那一次是的步行的层数最少。从下往上依次考察停某层的话,是Y-(NAbove-NFloor-NBottom)达到最小值,NAbove指到改层的人数,NBottom是该层停时到其以下层所有的人应该步行的层数,NAbove则是之上的。最底层初始化这些数据,然后每考察一层时,其上每个人就少走

2009-10-16 18:13:00 1324

原创 [TB-Exam]求命中率的一个题

一个U,G的序列,每个位置的猜测根据其前N个字符的‘U’orG的相对数目中较大(相等时以U猜)的,求猜测的最终的命中率[解答]/********************************************************************* DESCRIPTION:TaoBao 20091012 BUPT** AUTHOR:

2009-10-12 23:01:00 694

原创 [GoF设计模式]Iterator模式和Singleton模式的C++实现

【Iterator模式】提供了一种顺序访问一个聚合对象(aggregate)中各个元素,而又不需要暴露该对象的内部表示的。其关键是将对列表的访问和遍历从列表对象中分离出来并放入一个迭代器(iterator)对象中。迭代器定义个一个访问该列元素的接口,迭代器对象负责跟踪当前的元素;即它知道哪些元素已经遍历过了。迭代器和列表是耦合在一起的,而且客户对象必须知道遍历的是一个列表而不是其他聚合结构。S

2009-10-05 23:01:00 767

原创 [GoF设计模式]Prototype模式和Mediator模式的C++实现

【Prototype模式】用原型实例指定创建对象的种类,被且通过拷贝这些原型对象创建新的对象。拷贝构造函数应该注意深拷贝和浅拷贝的问题。深拷贝主要是指有指针或者复合对象的情况,而浅拷贝对此只是拷贝了指针,而与其共享同一个副本。编译器提供的默认的拷贝构造函数是按位拷贝的值(Value)类型的拷贝方式。Prototype(下例中的HousePrototype)声明一个克隆自身的接口,而Concre

2009-10-05 17:16:00 1592 1

原创 [GoF设计模式]Flyweight模式和State模式的C++实现

【Flyweight模式】 一个应用程序创建了太多的对象,会造成很大的存储开销,特别是大量轻量级的对象。对于这种情况,可以将对象的状态分成外部状态和内部状态,将可以被共享(不变化)的状态作为内部状态存储在对象中,而外部状态则可以将外部对象作为参数传递给对象。Flyweight有一个类似工厂模式的对象构造工厂,当程序需要一个对象时就会向FlyweightFactory发出请求对象的消息,该工厂拥

2009-10-05 11:05:00 1289

原创 [GoF设计模式]Interpreter模式和Memento模式的C++实现

 【Interpreter模式】-解释器模式给定一个语言(如下例中的字符A,B...),定义它的文法表示(下例中的VariableContext,map中存放从字符到整数的转换),定义一个解释器,这个解释器使用该表示来解释语言中的句子。当有一个语言需要解释,并且你可以将该语言中的句子(如下例中的计算公式)表示成一个抽象语法树(公式中有更细的公式,复合计算)时,可以使用解释器模式。Abstr

2009-09-30 14:59:00 2076

原创 [GoF设计模式]Composite模式和Visitor模式的C++实现

【Composite模式】 组合模式的关键是抽象类,它既可以代表图元(Leaf),也可以代表图元的容器(Composite)。组合模式可以用于创建树状的结构。用于使用抽象类接口与组合结构中的对象进行交互。如果接收是一个叶结点,则直接处理请求。如果接受者是Composite,它将请求发送给他的子部件,即图元,在转发请求之前或者之后可以进行辅助的操作。组合模式可以用于递归地创建树形结构。组合模式的

2009-09-28 17:14:00 1422

原创 利用动态规划求迷宫的最优值问题

【问题】7月5号的那道题的动态规划解法和如下这道的动态规划解法大体一致 从【0,0】出发走到底线处即停止,矩阵中每个元素的值为该处可以获得的价值,问到达底线时能获得的最大值。【动态规划】 规划一个二维矩阵和4*4,然后按照一横一竖的顺序一层一层求出反写的L形的值,每个元素的值为其上方和左侧元素的最大值加上该处获得的值之和。最下一层的值只能通过其上的位置达到。【算法程序】

2009-09-28 11:30:00 2518

原创 [GoF设计模式]Bridge模式和Template模式的C++实现

【Bridge模式】使用组合的方式将功能的需求的抽象和实现解耦,这样一来抽象和实现可以分别独自的变化。由此解决需求变更可能带来的麻烦,即类的迅速膨胀,如一般的情况下抽象和实现可能需要M*N个类来解决问题,而使用Bridge模式则只需要M+N个类来解决问题。此处的“实现”是指“怎么实现用户的需求”,并且通过组合的方式来实现。此处的实现不是指继承基类,实现基类接口,而是通过组合实现用户的需求。Br

2009-09-25 13:52:00 1012

原创 [GoF设计模式]Adapter模式和Chain Of Responsibility模式的C++实现

【Adapter模式】 Adapter适配器模式是为了解决这样的一个问题:我已经在应用程序中设计好了接口,但是这个接口和第三方提供的接口不一致,为了使得这些  接口不兼容的类可以在一起工作,Adapter模式将一个类的第三方的接口转化为应用程序需要调用的接口。 Adapter模式的实现有两种途径,一种是利用类的继承,一种是利用类的组合(聚合)(直接调用)来实现。即“接口继承”和“实现继承"

2009-09-24 20:02:00 836

原创 [GoF设计模式]Decorator模式和Observer模式的C++实现

【Decorator模式】Decorator模式提供了一种给类增加职责的方法,不是通过直接继承实现的,而是通过组合,下图中的WorkerDecorator类可以派生很多在Worker基础上扩展出来的类,而不仅仅只是SeniorWorker,可以有不同的扩展。这是装饰者模式的威力所在。但是如果只是给WorkComponent添加一个修饰,WorkDecorator可以省去,但以后可扩展性就不

2009-09-22 16:47:00 1449 1

原创 [GoF设计模式]Builder模式和Facade模式的C++实现

昨天晚上寝室断网了,今天补发。@【Builder模式】Builder创建者模式要解决的问题是:当我们要创建的对象很复杂的时候(通常由很多其他的对象组合而成),我们要复杂对象的创建过  程和这个对象的表示分开来,这样做的好处是可以一步一步的得到复杂对象的构建,由于在每一步的构建过程中可以引入参数,使得经过相同的步骤创建最后可以得到的对象的展示是不一样的。【图解】

2009-09-22 09:29:00 1600

原创 解一道通过预处理来匹配字符串的题目

【问题】  假设一字符串已被预处理,其中出现过的每一字符其出现的位置已被存到已排序列表(sorted list)中,例如   A = "this is a text"   预处理后会得到一下列表:   a : 9   e : 12, 17   h : 2   i : 3, 6   s : 4, 7, 13   t :

2009-09-20 23:48:00 554

原创 [GoF设计模式]抽象工厂模式和Command模式的C++实现

1-【抽象工厂模式】 图解:    简单工厂,工厂方法模式 , 抽象工厂模式共同点: 1- 封装对象的创建,2-减少应用程序与具体类之间的以来,松耦合特点: 简单工厂(单个Pizza店)工厂方法模式(Pizza 连锁店 )        使用 继承 ,把对象的创建委托给子类NewYorkPizzaStr

2009-09-18 19:44:00 1129

转载 对C的printf函数的可变长参数实现的分析

转自【http://tech.ddvip.com/2008-08/121825219252306_3.html】 内容摘要:一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣。 【1. 使用情形 】int

2009-09-17 21:09:00 1791

原创 [Gof设计模式]简单工厂模式和工厂模式的C++实现

【简单工厂模式】-Simple Factory Pattern  图解: 代码:(简单起见将类定义和类实现放在同一个头文件中)/** * Pizza Class (Abstract Class) */#ifndef PIZZA_H_#define PIZZA_H_class Pizza{ public: /

2009-09-17 15:53:00 2555

原创 [GoF设计模式]Proxy模式和Strategy模式的C++实现

  这个星期写写设计模式吧,一天两到三个,今天起个头儿。  今天要写的是代理模式(Proxy)和策略模式(Strategy),用C++做个简单的例子实现。  先不太规范了,一般的类就写在一个头文件中得了,连定义带实现,以后回过头来再看的时候,也能不麻烦点。呵呵。  还有以后出现要用“Rule of Three”的地方,先不做过细考虑,主要是侧重在模式本身。

2009-09-16 21:21:00 962

原创 BM(Boyer-Moore)字符串匹配算法的实现(一种有效常用的字符串匹配算法)

除了已知的KMP模式匹配算法外,还有一种比较常用的匹配算法BM算法(Boyer-Moore)字符串匹配算法 【算法的C++实现如下】:  /********************************************************************* DESCRIPTION:Boyer-Moore Algorithm for Strin

2009-09-10 22:44:00 2077 1

原创 解7月4号的那道题,计算迷宫中可行路径的条数

好长时间没写了,瞎忙活了两个来月,一直没什么心思继续下去,今天下午把之前的那道题想了想,挺简单的方法,直接用递归就可以了.用递归可以算出总数,并且可以输出可能的路径。但是效率不佳,由于可能的数据量庞大的情况下,数据量就会很大,这样效率就会不佳,最好用动态规划的方法来求解,按照反写的L的顺序计算出每个点的可能的条数,然后一个层的反写L按照上一层的反写的L计算,每一层反写L交点处的可能路径数在当层L中

2009-09-06 20:25:00 1108

原创 有关两个字符串匹配的一道题

[问题描述] 求两个字符串的公共字符集(字符间的相对顺序保持不变)对应的公共的字符串。如 :12478和14890 的公共字符集是 148  [问题求解] 利用动态规划。构建字符匹配与否的二维数组。 [程序代码]/* * main.cpp * * Created on: 2009-7-8 * Author: NeeSky

2009-07-09 00:34:00 1009

原创 一个路径的可能性选择的问题

坐标系从(0,0)点走到(9,9)点,只能向右或者向上走,其中有些点不能走,问有多少种走法?如图:假如。的位置不能走。(希望图能分辨清,左下角是(0,0))................................。。..........。...................................................

2009-07-04 10:51:00 513

Shell-Perl-Python脚本入门教程PDF

三个脚本的入门级教程,挺好的东西。 包括SHELL\Perl\Python的。

2009-10-15

UNIX环境高级编程[PDF]

把各章节搞到一个PDF文件中了,比以前各章节多个PDF文件要方便一些

2009-02-20

空空如也

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

TA关注的人

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