
数据结构与算法
两个鼻孔的猪
JUST DO IT
展开
-
数据结构与算法(一)概论
1.定义:数据结构是一门研究非数值计算的程序设计问题中,操作对象以及他们之间关系和操作的学科。简单来说就是关系,就是数据元素相互之间存在一种或者多种特定关系的集合。2.分类:逻辑结构和物理结构:逻辑结构:数据对象中数据元素之间的相互关系。物理结构:是指数据的逻辑结构在计算机中的存储形式。逻辑结构的分类:a).集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。b)...原创 2019-07-02 19:39:49 · 237 阅读 · 0 评论 -
数据结构与算法(二)时间复杂度和空间复杂度
时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,算法的时间量度记作:T(n)=o(f(n)),表示随着问题规模n的增大,算法执行时间的增长率也增大,称为算法的渐进时间复杂度,其中f(n)表示问题规模n的某个函数。(执行次数=时间)一般来说,随着输入规模n的增大,T(n)增长最慢的算法为最优算法。分析时间复杂度的方法:a).用常数1取代运行时间中的所有加法常数;...原创 2019-07-03 14:50:55 · 296 阅读 · 0 评论 -
数据结构与算法(四)线性表(2)
删除算法删除算法的思路:a).删除位置不合理,抛出异常;b).取出删除元素,表长减1;c).从删除元素开始,后面的每一个数据都向前移动一个位置;程序:在这里插入代码片分析以上算法的时间复杂度:a).若插入和删除数据刚好在最后一个位置,此时表内不需移动任何一个数据,此时时间复杂度为0(1);b).若插入或者删除的数据刚好在第一个位置,此时后面的每一个元素都要发生移动,此时时间复杂...原创 2019-07-09 15:22:29 · 252 阅读 · 0 评论 -
数据结构与算法(五)线性表(3)
单链表的整表创建:1)对于顺序存储结构的线性表的整体创建,我们可以用数组的初始化来直观理解。2)单链表与顺序存储结构不一样,其不像顺序存储结构数据集中,单链表的数据分散于内存的各个角落,其增长也是动态的,对于每个链表来说,它所占用空间的大小和位置是不需要预先分配划定的,可以根据系统的情况和时间的需求即时生成。3).创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次建立各元...原创 2019-07-14 11:35:25 · 227 阅读 · 0 评论 -
数据结构与算法(三)线性表
线性表(LIST)的定义:由零个或多个数据元素组成的有限序列。注意:a).首先是一个序列,也就是说元素之间是有先来后到的顺序;b).若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素有且只有一个前驱和后继,例如将某一线性表记为(a1,a2,a3,ai-1,ai,ai+1,an),在表中ai-1领先于ai,ai领先于ai+1,所以称ai-1是ai的直接前驱元素,ai+1是ai的...原创 2019-07-04 21:34:47 · 366 阅读 · 0 评论