写作目的:整天在家学习真的很无聊,所以写下学习时的一些想法和总结,这也是一种学习吧——输出。
基本是根据王道考研书《数据结构》和严薇敏老师的《数据结构》以及《数据结构与算法分析》。
本章主要讲两个知识点:
- 什么是数据结构
- 分析算法复杂度
一、什么是数据结构?
就是数据、数据之间的关系以及数据操作组合的集合,所以数据结构有三个东西:1、数据;2、数据之间的相互关系(比如两个数之间的前后关系);3数据操作(比如把一组数从前到后排列)。
除此之外还有数据的存储结构(顺序存储,链接存储,索引存储,散列存储,这些概念不需要现在掌握,以后会知道什么意思)和逻辑结构(线性,集合,树形,图)。
二、分析算法的复杂度
算法的复杂度分为时间复杂度和空间复杂度,也就是衡量程序最重要的两个要素,执行时间和占据的空间大小。但是,不同的机器上程序运行的时间不一样,为了解决这个问题,就把时间复杂度抽象出来,计算某一重要代码执行的次数和问题的规模的不同函数关系(比如n,n^2,e^n等),一般不要常数和系数,比如3n+6,直接写成n,8n^2写成n^2。
第一章比较简单,最主要的知识点就这两个,其他的概念以后会碰到,到时候就明白了。