数据结构和算法绪论
根据物理结构的定义,我们实际上研究的是如何将数据元素存储到计算机的存储器中。
存储器主要是针对内存而言的,像硬盘、软盘、光碟等外部存储器的数据组织通常用文件结构来描述。
数据元素的存储结构形式主要有两种: 顺序存储 和 链式存储
顺序存储:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一样的。比如数组的存储形式就是顺序结构。类似下面的图片。
链式存储: 是把数据元素存放在任意的存储单元中,这里的存储单元可以是连续的也可以是不连续的。很显然,链式存储结构不能反映数据的逻辑关系,因此需要一个指针存放数据元素的地址,这样子通过地址就可以找到相关联数据元素的位置。就像下面图片中的样子,这样的缺点就是占用内存较多,比如一号位置不仅存储1号的数据元素,他后面的一个内存存储的指向2号元素的指针。通过这个指针可以找到2号元素。同理2号元素的下一个位置存储着指向三号元素的指针。
算法的特性: 输入(0,1,多个输入) 、 输出(必须有输出) 、有穷性 、确定性。
算法效率的度量方式:效率高一般指算法执行时间快
研究算法的复杂度,侧重的研究是是研究算法随着输入规模扩大增长量的一个抽象,而不是精确的定位需要执行多少次。
常熟其实无法最终影响算法效率!!
时间复杂度和空间复杂度: