小白的数据结构与算法学习笔记(一)----绪论

我们学习程序设计,就会发现程序设计就是数据结构加算法,既然如此,就知道数据结构和算法是两门课,但是他俩的关系却是千丝万缕的,单纯学几种数据结构,很快就能学完,然而却不明所以然,所以需要和算法一同学习。好了,接下来进入主题,数据结构说白了就用两个字概括-----关系。研究数据之间复杂的关系就是数据结构,而谈及数据对象,数据元素就是基本单位,数据项就是最小单位,例如,成绩表里有姓名,年龄,学分绩三个项,这三个项每个项都是数据项,三个数据项搁一块就是一个数据元素,这样就容易理解了。数据的结构有两大块,一块是逻辑结构,一块是物理结构。逻辑结构主要有四大块:集合结构、线性结构(一对一)、树结构(一对多)、图结构(多对多);物理结构就是数据对象在内存中的存储形式,有两种:顺序存储(连续的一块空间,逻辑与物理保持一致性)和链式存储(内含指针,指向下一个元素的地址)。算法的一些特点就不说了,任何一本书上都有,这里要讲的是算法效率评估,有事前评估和事后评估。事后评估就是按照构想,自己耗费精力,敲出符合算法的代码,再实验检查,显然很不好,如果算法优秀还好说,要是本来就乱七八糟,好不容易搞出来,还发现辣鸡,就有点无话可说了,所以就有了事前评估。也就是看时间复杂度,简单说就是,把程序中每一步的重复执行次数叠加的结果取最高次项就可以了,系数咱不管啊。而空间复杂度主要有输入数据占的空间,程序本身占的空间和辅助变量占的空间,我们也可以用空间来换时间,或者用时间来换空间,具体情况具体处理。

                                                                                                                                                                              BY  ZJQ

猜你喜欢

转载自blog.csdn.net/qq_41641805/article/details/81285291