设计模式的使用,增加了代码的可维护性、可扩展性、可复用性和灵活性,而设计模式的六大原则为知道方针,也是设计模式的核心。
      设计模式中常用的六大原则为:
    
      一、单一职责原则(Single Responsibility Principle,SRP)
      定义:一个对象应该只包含单一职责,并且该这则被完整的封装在一个类当中。确切的解释是,就一个类...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 18:45:12   
                                阅读次数:
238
                             
                    
                        
                            
                            
                                设计模式中,真的有的长的很像的,甚至我们能从其中一个的类图直接演变为另一种类图。快,现在让我们来看看那些我们认识的姊妹图。
第一组:模板方法PK 建造者模式PK 工厂方法
	模板方法		建造者模式			工厂方法
三者比较:相同点,主要思想都是定义一个框架,然后将一些步骤延迟到子类。
	  不同点,首先,模板方法模式是行为型模式,而建造者模式工厂方法都是创建型模式。 
两两比较:模板VS 建造者
	     建造者模式用到模板方法,他们两个的使用范围区分就看构建的算法是否需要另外创建一个类。
而承担这...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 18:30:27   
                                阅读次数:
307
                             
                    
                        
                            
                            
                                1、算法思想描述: 1)将相邻的两个数进行比较,如果前面的一个大于后面的一个,则将他们交换。每次循环能使一个数达到有序状态。2、时间复杂度:    平均O(n^2)3、实现及优化。以下给出三种实现方式/*
 * bubblesort.cpp
 *
 *  Created on: 2014年5月17日
 *      Author: pc
 */
#include 
#include 
#inc...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 15:34:55   
                                阅读次数:
198
                             
                    
                        
                            
                            
                                【题目】
Divide two integers without using multiplication, division and mod operator.
【题意】
         计算两个数的商,不能使用乘、除、取余操作
【思路】
        用加法,确定多少除数相加其和恰好<=被除数
        为了提高算法效率,利用贪心思想,采用滚雪球式的翻倍叠加策略,使和快速逼近被除数
        集中特殊情况需要注意:
            1. 结果是负数
         ...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 10:42:00   
                                阅读次数:
259
                             
                    
                        
                            
                            
                                【问题】
每一对相邻整数的二进制表示只有一位发生变化,这种编码称为Gray码。
如下所示3位的Gray码:
000
0
001
1
011
2
010
3
110
4
111
5
101
6
100
7
要产生N位的Gray码,所需的递归思想概括如下:
1. 写出N-1位的G...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 09:07:43   
                                阅读次数:
261
                             
                    
                        
                            
                            
                                消息传递(Message Passing)
 
通常可用把并行程序理解为一组相互独立的、能够发关和接收消息的组件,这也称为角色模型(ActorModel),在维基百科上可找到更正式的解释 
http://en.wikipedia.org/wiki/Actor_model。虽然使用消息传递的场景往往相当复杂,但是其背后的思想却相对简单,正像下面将要看到的示例一样:
消息传递背后的基本思想是这...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 08:16:28   
                                阅读次数:
373
                             
                    
                        
                            
                            
                                1.1 Paraview的通信模式
ParaView 服务器(ParaVie w Server),提供了运行并行,交互可视化所必须的抽象层,使用户应用程序不必考虑诸如 ParaView 是否和如何在并行状态下运行等问题。VTK 提供了数据处理和渲染的核心算法。VTK,与一些其他的函数库(基础图形库 OpenGL,用于并行运算的 MPI 等)来提供可视化处理功能,如渲染,并行处理,文件输入输出,和...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 06:58:22   
                                阅读次数:
416
                             
                    
                        
                            
                            
                                题记:“流动书库”的构想受到ITAEM团队开设新生IT入门宣讲会的启发(见博文 第二期宣讲会),一群有志青年,有感于自己求学过程中经历的坎坷经历,想帮助大一新生能够尽快度过大学迷茫期,及早走入IT殿堂。目前已经开设了两期宣讲会,共有80多人次参加。在第二期宣讲会中,自己做了一个类似“思想实验”,看听众对“流动书库”设想的支持程度,当晚认捐金额为274.5元,这也是“流动书库”的启动资金,见现在就行动(ITAEM经验分享会-丁又专)(PPT)及博文寻找大学目标及行动步骤——记ITAEM团队第二期宣讲会(201...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 05:49:35   
                                阅读次数:
315
                             
                    
                        
                            
                            
                                【题目】
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
【题意】
实现库函数strStr(), 功能是在字符串haystack中找出目标串needle第一次出现的索引位
【思路】
字符串的匹配,可以用暴力解法,但不推荐。一般使用KMP算法求解。
简要介绍一下KMP的思想:
      ...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 04:10:04   
                                阅读次数:
244
                             
                    
                        
                            
                            
                                HTTP必须运行在TCP上吗?SSL必须运行在TCP上吗?...实际上HTTP并没有规定一定要运行在TCP上,甚至FTP也不一定要运行在TCP上!HTTP或者FTP只是说底层信道要保证数据的按序传输以及可靠到达而已,由于传输层除了TCP之外没有别的著名的协议可以满足这个需求,所以大多数的应用都选择了TCP,但是你要知道,这并不是强制的。       SSL基于这个思想上打开了第一个洞,从而出现了D...
                            
                            
                                分类:
其他好文   时间:
2014-05-18 03:46:29   
                                阅读次数:
287