今年3月转行,从事JavaWeb开发工作。觉得以后想要较好的发展,除了提高上层应用技术水平,还应该学习计算机的基础课程,构建计算机知识系统。按照左飞老师提到的计算机学习路线,目前打算先学习算法和编译原理这第一条路线,估计在边工作边学习的状态下,至少得半年光景吧。同时,计划每学完一章,会写一篇博客,以作总结。
算法这本书名字:数据结构与算法分析 Java语言描述 马克.艾伦.维斯著
1.1 本书讨论的内容
算法的目的:优化程序。
1.2 数学知识复习
涉及指数、对数、级数、调和数、模运算、归纳证明、反证法等数学知识,不详细展开。
1.3 递归简论
递归的四个基本原则:
1. 基准情形:作为递归出口,当方法运算到此时,不再调用下一级方法。
2. 不断推进:递归总朝着基准情形前进。
3. 设计法则:假设所有的递归调用都能运行,这点如同归纳法中假设前n-1种情况成立。
4. 合成效益法则:在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作
1.4 实现泛型构件 pre-Java 5
Java 1.5 前使用Object来起到泛型作用,但相比泛型,缺少安全性。
Java 数组具有协变性
1.5 利用 Java 5 泛型特性实现泛型构件
泛型不具备协变,故引进通配符
不能用new 创建泛型类型的实例,也不能创建泛型数组
1.6 函数对象
涉及Comparable接口和Comparator临时比较器
对知识点的理解
1. 要成功设计递归方法,可从各级之间存在相似的变化关系入手
2. 上级方法假设下级方法返回需要的结果,并依靠该结果设计方法;下级具备同上级相似的方法过程。
疑惑与难点
1.利用递归求解