模板方法模式定义:
定义一个算法的骨架,而将步骤延迟到子类中。这种模式可以使得在不改变算法骨架(模板)的情况下修改每个步骤的具体实现
从功能上来看,这个模式跟生成器模式有些相像,只不过生成器模式定义了创建对象的过程,而模板方法模式定义了算法过程
.接口和抽象类
(1)接口是特殊的抽象类,接口中所有方法必须是抽象的,不能有具体实现;而抽象类中可以有实现的方法
(2)抽象类不一定包含抽象方法,有抽象方法的类一定是抽象类
(3)需要约束子类行为时用接口,既要约束子类行为,又要为其提供公共功能时用抽象类
模板方法模...
分类:
其他好文 时间:
2014-05-09 15:21:55
阅读次数:
324
ip范围限制函数
大家如果还有好的建议算法,就联系我!!:)
'******************************
'Function CheckIp(cInput_Ip,cBound_Ip)
'Created by qqdao, qqdao@263.net 2001/11/28
'说明:首先需要根据;号循环,然后判断是否含有"-",如果有则进行拆分处理,最后判断是否在范围内
...
分类:
其他好文 时间:
2014-05-09 15:18:32
阅读次数:
269
1.什么泛型
泛型出现的真正意义在于,类型能在运行时指定类型参数。在没有泛型的时候很多算法相同但是传入类型不同的方法需要反复的出现在不同的类里面,增加了工作量,并且在维护过程中的代价也是非常的巨大,在这样的情况下如果方法能够在运行时指定类型那么就可以降低很多的工作量,所以“懒惰”的软件工程师设计出了可以获取类型参数的方法“泛型”。
利用泛型,可以在声明变量时创建用来处理特定类型的特殊数...
分类:
Web程序 时间:
2014-05-09 15:09:40
阅读次数:
379
翻转链表绝对是终点项目,应该掌握的,这道题要求的是翻转一个区间内的节点,做法其实很相似,只不过要注意判定开始是头的特殊情况,这样head要更新的,还有就是要把翻转之后的尾部下一个节点保存好,要么链表就断掉了。一趟就可以,遇到节点直接翻转,最后把整个翻转的链表再翻转一次,就实现了。
class Solution {
public:
ListNode *reverseBetween(List...
分类:
其他好文 时间:
2014-05-09 15:05:06
阅读次数:
225
平面最近点对,指平面中距离最近的两点。本文详细介绍求解平面最近点对的nlogn分治算法。...
分类:
其他好文 时间:
2014-05-09 14:57:34
阅读次数:
225
递归实现当然太简单,也用不着为了ac走这种捷径吧。。非递归实现还挺有意思的。
树的非递归遍历一定要借助栈,相当于把原来编译器做的事情显式的写出来。对于中序遍历,先要访问最左下的节点,一定是进入循环后,不断的往左下走,走到不能走为止,这时候,可以从栈中弹出访问的节点,相当于“左根右”过程的“根”,然后应该怎么做呢?想一下中序遍历完根节点之后应该干嘛,对,是走到右子树中继续重复这个过程,但是有一点,...
分类:
其他好文 时间:
2014-05-09 14:57:08
阅读次数:
211
字符串的问题真是难,一般递归比较好写代码,一般地归还会超时,而且测试用例特别多。。
这道题刚拿到手时直接慌了,这情况也太多了,后来冷静下来想想,其实还是比较单纯的。一个ip地址,肯定是四个整数加三个点构成,四个整数要满足什么呢,0~255嘛,还有呢,就是这四个整数必须正好把原来的字符串给用完。一开始忽略掉的一类测试用类是前面有0但实际这个数不是零的情况。
用什么来穷举呢,或者说穷举的对象是什么...
分类:
其他好文 时间:
2014-05-09 14:54:11
阅读次数:
210
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前...
分类:
编程语言 时间:
2014-05-09 14:47:20
阅读次数:
396
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。
快速排序的优点:
(1)原址排序,空间复杂度较小。
(2)虽然最坏情况下(有序数组)...
分类:
其他好文 时间:
2014-05-09 13:50:58
阅读次数:
283
直接插入排序对待排数量较少且基本有序的序列,其执行效率是非常高的,希尔排序正是利用了这点,将一个无序的序列拆分成几个子组,然后对几个子组分别进行插入排序。注意,这儿的分组并不是简单的{a1,a2,a3,b1,b2,b3,c1,c2,c3}(相同字母为一组),而是进行{a1,b1,c1,a2,b2.....
分类:
其他好文 时间:
2014-05-09 12:59:34
阅读次数:
280