01 2016 档案
摘要:问题:设计一个算法将k个有序链表合并成一个有序链表,已知k个链表总元素个数为n. 算法要求的复杂度是O(nlogk),可以采用最小堆来实现k路归并,具体算法如下: 1.取出k个链表头结点调准成一个最小堆heap[k]; 2.取出堆heap中的最小值,然后将该最小值下一个结点放在heap[0]位置,然
阅读全文
摘要:分治策略分为三步:分解原问题:将原问题分解为一些子问题,子问题形式与原问题一样,只是规模更小。解决子问题:递归的求解出子问题。如果子问题规模足够小,则停止递归,直接求解。合并子问题:将子问题的解合并为原问题的解主方法公式:T(n)=aT(n/b)+f(n);它刻画了这样一个分治算法:生成a个子问题...
阅读全文
摘要:问题:给定一个数组A,A存有n个互不相同的整数。定义:若i<j且A[i]>A[j],则称(i,j)为A的一个逆序对(inversation)。设计一个O(nlogn)算法求A中逆序对个数。 显然最坏情况下逆序对有n(n-1)/2个,如;5 4 3 2 1完全逆序,逆序对有(5-1)*5/2=10对。
阅读全文
摘要:一:类型别名是一个名字,它是某种类型的定价。有两种方法定义类型别名: 1.使用typedef关键字,如: typedef int *Int_Ptr Int_Ptr p=nullptr; //Int_Ptr是一个int指针类型,这里定义了一个int型指针P 2.使...
阅读全文
摘要:常量表达式(const expression):是指值不会改变并且在编译过程中就得到计算结果的表达式。(运行中得到结果的不能成为常量表达式)。 const int i=3; //是一个常量表达式 const int j=i+1; //是一个常量表达式 int k=...
阅读全文
摘要:const对象一旦创建后,其值就不可以改变,所以const对象必须初始化。与非const的类型比较,主要区别在于const类型对象执行但是不改变其操作内容。 在默认状态下,const只在文件内有效。在默认状况下,const定义的对象仅限定在文件类起作用,当多个文件中出现了同名的const时其实...
阅读全文
摘要:void*是一种特殊的指针类型,可以用来存放任意对象的地址。一个void*指针存放着一个地址,这一点和其他指针类似。不同的是,我们对它到底储存的是什么对象的地址并不了解; 比如:double a=2.3; int b=5; void *p=&a; cout<<p<<e...
阅读全文
摘要:一次只解决一个问题:只给一个实体(变量,类,函数,模块,库,名字空间)赋予一个定义良好的职责,随着实体的扩大,其职责范围一会扩大,但是职责不应该发散;如果一个实体有几个不同的目的,那么使用起来难度会剧增,因为这种实体除了可以增加理解难度,复杂性和各部分的出错,还会导致其他的问题。这种实体不仅大,而...
阅读全文
摘要:高度重视警告,使用编译器的最高警告级别,要求构造时干净利落的(没有警告),理解所有的警告,通过修改代码而不是通过降低警告级别来消除。排除警告的方法是:先把它弄清楚,然后改写代码来排除警告,并使代码阅读者和编译器更加清楚。 成功的构建应该是无声无息的,即使一开始可以正常运行,但是可能隐藏着未来真真的...
阅读全文
摘要:只要规定需要规定的事情:不要强加个人爱好或者过时的做法。应该在每个源文件和项目中使用一致的格式,因为同一段代码中要是有几种style换来换去是很不舒服的。可以具体遵从以下例子规范:1.规定要用缩进来体现代码的结构,在每个源代码中缩进和空格要保持一致。2.不要强制代码行的具体长度,应该保持代码长度有...
阅读全文
摘要:表现动多态的函数只处理特定类系列的对象,一个类层次的结构,而且基类必须是多态类,一个类系列配一个表现多态的函数。而模板表现的多态不是在运行中进行类型识别的,而是在编译时刻进行类型识别的,因而模板实现的多态为静多态。 对于抽象编程来说,或许使用动多态更好一点,他可以将类实现的源代码彻底隐蔽,无需...
阅读全文
摘要:抽象类就是在类中至少声明一个纯虚函数,所谓纯虚函数就是被标明不具体实现的函数。声明纯虚函数方法是在虚函数后面加上“=0”,如virtual void fn()=0;抽象类是作为基类为其他类而服务的,不可具体实例化。
阅读全文
摘要:在类的编程中,要能进行抽象编程,不随类的改动而改动,类机制必须解决这个问题。在C++中那就是虚函数机制。基类与派生类的同名操作只要标记上virtual(虚拟)就可以),则该操作就具有多态性。 在调用子类和基类同名虚函数标志函数时,使得该捆绑操作滞后运行,以实际对象类型来捆绑其对应成员函数的操作,此...
阅读全文
摘要:C++继承方式有公有继承,私有继承,保护继承。值得注意的是,基类私有成员在任用任何继承方式下都是隔离的,也就是视派生类为外人。在公有继承中,基类的每个成员在子类中保证相同的访问方式,在基类为public 成员,则在子类也是public成员,在基类为保护成员则在子类也是保护成员。对于保护继承,基类...
阅读全文

浙公网安备 33010602011771号