前言重点:
1:此书可用于入门,可用于进阶
2:此书代码全部由java实现,但语言不重要,重要的是思想
3:配套网站:Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne 有答案。
4:此书的编写用时四十余年
第一章 基础
1.1
基础编程模型
1:大多数的算法都需要适当地组织数据,就是说一种解决问题的方法在实施过程需要配合另一个方法使用才可以,你知道了解决问题的算法但是还要把问题相关的那些数据组织一下吧,不能当没看见吧,而这另一种方法就是组织问题相关数据的方法,也就是“数据结构”。
2:算法可以用自然语言去描述出来,也可以用一段程序来表示。所以他跟程序呀代码呀是两回事。算法就是解决问题的思想,而这在早在计算机发明出来前就有了。
3:程序==数据结构+算法;
4:数据结构可以说是算法的副产品或是结果,简单的算法也许会产生复杂的数据结构,反过来一样。
这是因为,我们在遇到问题时想到 的解决思路是是算法,用这个算法时还要考虑到如何组织问题数据才能让程序更好的解决问题。
5:最大应用体现在大项目上,选择出更合适的那个算法,可以省钱,懂否。
6:如果你是个看不懂程序的新手,那么你可以尝试下模块化思维,看到了这个词是不是感觉懂了又没完全懂?其实可以理解成“语句化”思维。
Java程序的基本结构:包括了原始数据类型,语句,数组,静态方法,字符串,输入输出,数据抽象。
而这个语句嘛,他有六种:声明,赋值,条件,循环,调用,和返回。你在程序中,把那些句子和这几个词对应上,就有初步的“模块化思想”了,就是课堂上老师一带而过的那些高大上的词汇。。。。(嵌套的化就先看最外面那层的)
1.1.2原始数据类型的定义包括 “该数的取值范围” 和“ 你能对该值可以进行的操作”,个人觉得有点像限定使用范围和方式了,也跟权限有点关系的样子,这点存疑。
数据类型就是 一组数据 和 对其所能进行的操作的集合。
数据类型取值范围就百度吧,我没必要写。
要养成良好的编程风格
小经验
1:声明一个变量时要在快要用到它之前再写,就是离应用位置越近越好,可以限定作用域。
2:最好是一个变量对应一个功能,用的时候多声明几个,这样才便于别人阅读,编程届大佬也会跟你说,编程高手他们见得太多了,不缺,他们更喜欢编程习惯好的。就是比如说一个变量又充当临时变量,又放循环里做索引用的变量,最后再用它当限定条件,也许能显得你操作很骚?但这样不好。



