渣渣小本求职复习之路每天一博客系列——数据结构与常用算法(1)

  前情回顾:前两天的时间里,都在看关于JAVA的东西。由于我现在不用上课和实习,除了偶尔去笔试面试之外时间还挺多的,光看一门东西感觉有时候需要换换脑子,所以试试看能不能同时进行两个方面的复习。

  实话说,我学得最差的应该就是算法与数据结构了。当时上课的时候没好好上,许多内容都没听明白,之后也没补漏过。最近笔试经历了几场,发现自己在这方面实在不够用,急需迎头赶上,不然无论是面试还是日后的工作都有潜在的危险。

  今天听了一篇文章(介绍一下心理FM网),里面有一句话我很喜欢,那就是“就算是死,也别是被吓死的”。我之前就是怕,觉得复杂,不敢去试,以至于一直拖到现在。现在,是时候直面最大的缺陷了。补起来很简单,不用怎么找漏洞,因为很多东西都只是知道个名字,到底是什么东西基本是不知道的。一张白纸,重新开始。

———————————————————————————————闲聊结束———————————————————————————————————

  楔子:

  这个专题的教材选择的是程杰老师的《大话数据结构》。下面是他给出的建议研读方法:

1.复习C语言基础。

  当初学编程一开始学的是C++,但是很深入的东西基本没碰过。掌握一些C语言知识还是很必要的,就借着这个机会,做“第一次的亲密接触”吧。

2.阅读第一遍时,建议从头到尾进行。

  我高中的时候读过很多的课外书,还专门写过一篇文章叫《好书要读第二遍》,其中也有提到书看第一遍的时候通读是很不错的一种选择。呵呵,这么说有没有一种往自己脸上贴金的赶脚。

3.阅读时,摘抄是非常好的习惯。

  写博客其实也是一种“摘抄”的方式,可能更进一步,有总结归纳的意思在里面,甚至把自己的理解和感悟记录下来。这样做会降低阅读的速度,提高阅读的有效率,从而让自己更好地消化阅读的内容。

4.阅读每一章时,特别是在阅读算法的推导过程时,一定要在电脑上运行代码,了解代码的运行过程。

  我之前很少看别人写的代码,虽然自己写的代码很少得可怜。听说这样做是很有用的——“通过开发工具调试,设置断点和逐行执行,并参照书中的讲解,观察变量的变化情况来理解算法的编写原理。嗯嗯,我要多试试才行,敬请期待。

5.阅读完每一章时,一定要在理解的基础上记忆一些关键东西。

  理解记忆,理解记忆,就是要在理解之后再记忆,这样效果会更好,这一点我深有体会。可以通过写关键词,自己考自己,看能不能在不看出的情况下讲的清楚概念,写得出相关算法来给自己做自测。

6.数据结构和算法不可能通过这一本书就可以掌握。

  作者会在书里面介绍一些参考书目,据说都是最优秀的相关中文书籍,各有侧重。考虑买几本来看看,当然是在用好这本书的情况下啦。

7.尽量把学到的数据结构和算法只是运用到现实开发中。

  楼主我其实是一个蛮实用主义的人,如果能看到一样东西的实际用处,会更加有学习劲头。而且,学习不就是会了实践么?学习之后实践,实践之后再学习,循环往复,良性可持续,nice啊。

  第一章:数据结构绪论

  第一节:基本概念和术语

1.数据

  是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

2.数据元素

  是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被成为记录。

3.数据项

  一个元素可以由若干数据项组成。数据项是数据不可分割的最小单位。

4.数据对象

  是性质相同的数据元素的集合,是数据的子集。

5.数据结构

  是互相之间存在一种或多种特定关系的数据元素的集合。

  第二节:逻辑结构与物理结构

  书中,将数据结构分为逻辑结构和物理结构两大类。  

  第一节:逻辑结构

  什么是逻辑结构呢?是指数据对象中数据元素之间的相互关系。逻辑结构又分为以下四种:

1.集合结构

  集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。这种集合关系类似于数学中的集合。

2.线性结构

  线性结构中的数据元素之间是一对一的关系。 (自行想象贪食蛇的样子)

3.树形结构

  树形结构中的数据元素之间存在一种一对多的层次关系。

4.图形结构

  图形结构的数据元素是多对多的关系。

  逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。

  第二节:物理结构

  什么是物理结构呢?指的是数据的逻辑结构在计算机中的存储形式。数据元素的存储结构形式有两种:顺序存储和链式存储。

1.顺序存储结构

  是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

2.链式存储结构

  是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

—————————————————————————————第14天—————————————————————————————————

  快到要一半的时间了,加油加油加油。

1.在写这篇博客的时候,我会在心理FM听一些很不错的文章,主播的声音也是超级赞的!非常推荐!给出网址http://fm.xinli001.com/

2. 写博客,真心不能着急,最近时间一紧,发现自己写博客时候思路很不顺畅。看来要给自己预留多一些时间。

3.其实也不是时间非常紧张,其实能安排的时间还是蛮多的,只是自己没有利用好而已。要想想,怎么办才行了。

  

原文地址:https://www.cnblogs.com/levenyes/p/3403031.html