摘要:
数据结构和算法理解很简单,深感算法导论的介绍更是精辟而无累赘。例如:1. 直接切入二叉搜索树,而不是从树开始介绍各种繁琐的表示方式,最后的重点结果还是二叉搜索和几种平衡树,算法导论介绍知识的时候数学性虽强,但应用性也十足,它的 应用性不在于给你代码,而在于给你应用的场景,告诉你各种结构的优劣和... 阅读全文
摘要:
问题见SICP P26此问题的递归方法很简单,类似于背包的思想。 即金额为amount的现金换成n种硬币的种类数 满足循环不变式: count_change(amount,n)=count_change(amount,n-1)+count_change(amount-amount_of_f... 阅读全文
摘要:
这里以一个智能指针类为例,智能指针所指为一个对象。而事实上,STL迭代器的开发均需要重载这两个操作符,上一篇文章分析STL 迭代器中除了要用到template技巧外,还需要重载技巧 1 #include 2 using namespace std; 3 class Screen 4 { 5 ... 阅读全文
摘要:
在学习算法导论的时候,对于各数据结构,自然是实现一个才算掌握,工具当然是template编程,但是自己的demo经常存在很多问题,比如没有给出迭代器啊,操作符重载不够啊等等设计上的问题,而某些问题实际上是从设计之初就该考虑的大框架,而非小细节。对于C++而言,STL无疑是最佳的参考资料,侯捷先生的S... 阅读全文
摘要:
这个问题是算法导论的一个示例,为了讲解分治。 1 //算法导论中的分治策略版本 2 3 4 #include 5 using namespace std; 6 int maxCrossSum(int a[], int begin, int mid, int end) 7 { 8 int ... 阅读全文
摘要:
1. hoare划分 1 int hoare_partition(int a[], int begin, int end) 2 { 3 int pivot = a[begin]; 4 int ini = begin; 5 int ter = end; 6 ... 阅读全文
摘要:
1 #include 2 #include 3 using namespace std; 4 #define max(a,b) (a>b)?a:b 5 #define min(a,b) (a>b)?b:a 6 class Interval 7 { 8 public: 9 ... 阅读全文
摘要:
今闻下一届学弟学妹的程序设计基础课程将于暑期进行,且每日时间长达8小时,回想当年入门编程之窘境,故今来此开篇博文,日后有空会继续添加。希望可以对大家有所助益。若有任何关于C++的疑问,欢迎QQ咨询(414445050),邮件也可以(QQ邮箱即可)当年学程序设计基础,最难之处不在语言,不在指针,不在算... 阅读全文
摘要:
在c++中,const关键词出现在很多地方,有诸多的用途,也有很多的限制。这里简单的列举一下const声明和定义的注意事项:(const对象定义时必须初始化,下面的例子只是说明一下const位置的含义)const出现在声明或者定义变量的类型的前面的时候,const修饰的是变量本身如:const ch... 阅读全文
摘要:
关于这一点呢,是在做《C++primer 》关联容器map的一道习题中发现这个蛋疼的问题的。问题是这样的:我想要将while循环条件设置为cin,这样就可以不断等待输入,普通的程序可以直接按下ctrl+z中止输入,麻烦在于这里有两层这样的while循环,而ctrl+z会一次性全部退出,导致无法实现想... 阅读全文