数据结构(2024/1/29)

这周将正式开始数据结构的学习!!

数据结构

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

                 2.分类:逻辑结构    指数据对象中数据元素之间的相互关系。

                               物理逻辑    指数据的逻辑结构在计算机中的储存形式,又叫存储结构

逻辑结构分类

               数据结构(2024/1/29)_第1张图片

(a)集合结构:其中的数据元素除了都属于一个集合外,没有其他关系

(b)线性结构:其中的数据元素之间是一对一的关系。

(c)树形结构:其中的数据元素之间存在一对多层次关系

(d)图形结构(网状结构):其中的数据元素是多对多的关系。

   注意      (1)将每一个数据元素看成一个结点,用圆圈表示。

                (2)元素之间的逻辑关系用结点之间的连线表示。如果这个关系是有方向的,那么用                              带箭头的连线表示。

物理结构类

(a)顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系           是一致的。【按顺序依次摆放】

   

         优点:随机访问。

         缺点:大小固定,不易插入删除。

(b)链式存储结构:把数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以是           不连续的。

         数据结构(2024/1/29)_第2张图片

         优点:灵活,插入删除效率高。

         缺点:不能随机访问。

(c)索引存储结构:为了加速检索而创建的一种存储结构。

        优点:对顺序查找的一种改进,查找效率高。

         缺点:需额外空间存储索引。

(d)散列存储结构:又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对                                    应关系的查找技术。

         优点:查找基于数据本身即可找到,查找效率高,存取效率高。

         缺点:存取随机,不便于顺序查找。

数据类型:  

  1.分类:  原子类型    是不可以在分解的基本类型,包括整型、实型、字符型等。

                  结构类型    由若干个类型组合而成,是可以再分解,例如:整形数组是由若干个整型                                        数据组成的。

稍微了解了一下算法时间复杂度空间复杂度

算法时间复杂度

    (1)含义:也就是算法的时间量度,时间开销与问题规模n的关系 【关键步骤的执行次数】

             算法的时间复杂度表示:用大写的 O 来体现算法时间复杂度如O(f(n)),称之为 大                 O记数法。(采取高阶表示法)

         数据结构(2024/1/29)_第3张图片

    (2)所耗时间从小到大依次是:

 

算法空间复杂度

(1)通过计算算法所需的存储空间实现。

(2)计算公式:S(n)=O(f(n))【n为问题的规模,f(n)为语句关于n所占存储空间的函数】

(3)注意:所需的存储空间指的是一个算法在运行过程中的临时占用存储空间。

(4)几种情况:

         常量空间     当算法的存储空间大小固定,和输入规模没有直接的关系时,空间复杂度记作                                 O(1)。

         线性空间     当算法分配的空间是一个线性的集合(如数组),并且集合大小和输入规模 n                                   成正比时,空间复杂度记作 O(n)。

         二维空间     如果是二维数组且传入n个数据,那么这个二维数组的时间复杂度就是O(N^2)。

         递归空间     递归算法的空间复杂度=每次递归的空间复杂度*递归深度

     复杂度:通常情况下,“复杂度”指时间复杂度。

希望大家通过此篇文章有一定的收获!!             *^_^*

     

你可能感兴趣的:(数据结构,学习)