上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 70 下一页
摘要: 一,题目在校园招聘的季节里,为了能让学生们更好地了解微软亚洲研究院各研究组的情况,HR部门计划为每一个研究组举办一次见面会,让各 个研究组的员工能跟学生相互了解和交流。已知有n位学生,他们分别对m个研究组中的若干个感兴趣。为了满足所有学生的要求,HR希望每 个学生都能参加自己感兴趣的所有见面会。如果每个见面会的时间为t,那么,如何安排才能够使得所有见面会的总时间最短? 最简单的办法,就是把m个研究组的见面会时间依次排开,那我们就要用m * t的总时间,我们有10多个研究小组,时间会拖得很长,能否进一步提高效率?二,分析 此题的官方解法是将问题转化为一个已知的图的问题:即图的最少着色问题。 但有 阅读全文
posted @ 2012-06-26 11:08 MXi4oyu 阅读(189) 评论(0) 推荐(0) 编辑
摘要: //冒泡排序:对一个队列里的数据,挨个进行轮询和交换,每次轮询出一个当前最大或者最小的值放在队尾,然后继续下次轮询,轮询长度-1,就跟冒泡一样,所以称为冒泡排序,运算时间复杂度N平方 //选择排序:对一个队列里的数据,选出当前最大或者最小的值,然后将他与队首的数据交换,然后从第二个开始,进行相同的操作,运算时间复杂度N平方,但由于他不像冒泡一样需要不停的交换位置,所以会比冒泡快一些//插入排序:对一个队列里的数据,从第二个开始,与此位置之前的数据进行比较,形成局部有序的队列,循环此操作,直到队尾,运算时间复杂度依然为N平方,但他由于保证了局部的有序性,所以比较的次数会更少一些,相对前两种会更快 阅读全文
posted @ 2012-06-26 09:10 MXi4oyu 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,算法中基本操作重复执行的次数是问题规模 n 的某个函数 f(n) 算法的时间度量记作 T(n) = O(f(n)),他表示随着问题规模n增大,算法执行时间的增长率和f(n) 的增长率相同,乘坐算法的渐进时间复杂度(Asymptotic Time Complexity),简称时间复杂度。 算法时间复杂度从小到大依次是: O(1) < O(logn) < O(n) < O(nlogn) < O(n2)< O(n3)< O(2n)< O(n!)<O(nn) 时间复杂度越高,算法消耗cpu就越高,执行速度就越慢。 分析时间复杂度代码举例如下: 阅读全文
posted @ 2012-06-25 17:41 MXi4oyu 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 一,配置 apue.h是作者自己写的一个文件,包含了常用的头文件,系统不自带。其中包含了常用的头文件,以及出错处理函数的定义。使用起来确实很方便。 想要使用,还要进行下面操作,完成相关配置. 在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。 1、解压至/home/user/目录下 2、修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e 3、返回至apue.2e目录下面,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/nawk/a 阅读全文
posted @ 2012-06-25 10:52 MXi4oyu 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一,概述 字符测试函数 包含在头文件 <ctype.h>中 这些都是宏定义,而非真正函数。1)isalnum 测试字符是否为英文字母或数字#include <stdio.h> #include <ctype.h> int main() { char str[]="12#$%sdfsfsf"; int i; for(i=0;str[i]!=0;++i) if(isalnum(str[i])) printf("%c is an alphanumberic character\n",str[i]); return 0; }2 阅读全文
posted @ 2012-06-24 23:33 MXi4oyu 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。 1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成为公共的全局变量,再说为了复用这么一片代码,就要单立出一个函数,也不是很好维护。 2)仿函数,写一个简单类,除了那些维护一个类的成员函数外,就只是实现一个operator(),在类实例化时,就将要用的,非参数的元素传入类中。二,仿函数(fu... 阅读全文
posted @ 2012-06-24 21:36 MXi4oyu 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一,巡防算法 for_each(容器起始地址,容器结束地址,要执行的方法)#include <iostream> #include <algorithm> #include <vector> using namespace std; template<class T> struct plus2 { void operator()(T&x)const { x+=2; } }; void printElem(int& elem) { cout << elem << endl; } int main() { in 阅读全文
posted @ 2012-06-23 22:53 MXi4oyu 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 中介者模式(Mediator Pattern),定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。 使用中介者模式的动机: 面向对象设计鼓励将行为分布到各个对象中。这种分布可能会导致对相间有须有链接。在最坏的情况下,每个对象都知道其他所有对象。 虽然将一个系统分割成许多对象通常可以增加可复用性,但是对相间相互链接的激增又会降低其可复用性。大量的相互链接使得一个对象似乎不太可能在没有其他对象的支持下工作--系统表现为一个不可分割的整体。而且,对系统的行为进行任何较大的改动都十分困难,因为行为被分布在许多对... 阅读全文
posted @ 2012-06-23 16:49 MXi4oyu 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 一,概述 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题: 首先完全实现‘开-闭 原则’,实现了可扩展。 其次更复杂的层次结构,可以应用于产品结果复杂的场合。 工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产.. 阅读全文
posted @ 2012-06-23 00:49 MXi4oyu 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一,概述 定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。 作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 思想:为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是在本机器中,也可是在另一台机器中。远程代理又叫做大使(Ambassador). 阅读全文
posted @ 2012-06-22 23:35 MXi4oyu 阅读(168) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 70 下一页