• 顺序存储与链式存储的差异


    这篇文章主要介绍顺序存储与链式存储的差异,主要是从两个大的维度几个小的方面进行比较。

    一,从空间性能角度

    (1)由下表可以看出顺序存储的存储密度是1(100%)。什么意思呢?就是开辟一段连续的空间,用来存顺序表,这一段空间所有的位置都用来存储我们需要的数据信息,没有空间的浪费。所以利用率达到了100%【也就是存储密度是1】。然而链式结构中的节点不仅存储了数据,还保存了指针,然而指针并没有存储我们用到的数据,所以说,链式存储的存储密度是小于1的。

    (2)由下表可以看出顺序存储的容量分配要弱一些。顺序存储需要多少空间要是事先确定,链式存储是动态分配的,更加灵活吗,可以动态的更改分配。

    二,从时间性能方面

    (1)在时间性能反方面,查找运算用顺序表更方便,链式表相对来讲就差一些。当然,在内容没有顺序的前提下,他们的时间复杂度是一样的。都是从第一个开始匹配。如果存储的顺序表本身是有序的,涉及到二分查找法时,顺序存储要更优。

    (2)读取信息(指定某个内容读取出来)顺序表更优。比如说要读取a[5],在顺序表中,直接读取a[5]即可,但是在链式存储中,假设指针在头结点,,头结点指向1号节点, 要next()4次才能定位到a[5]。

    (3)插入运算,链式结构更优。链式结构在插入数据的时候,只需要将要插入的节点的指针指向要插入节点上一个节点的next节点,在将上一个节点的next节点指向要插入的节点即可。但是在链式结构中,需要将要插入位置之后的所有元素向后移,再插入新的节点、

    (4)删除运算,链式结构更优。链式结构在删除节点是,只需要将要删除节点的上一个节点的指针指向他的下一个节点即可。然而在链式结构中,需要将要删除节点之后的所有节点前移一个位置。

     

     

  • 相关阅读:
    ssh加密访问
    protobuf java学习
    Errors occurred while updating the change sets for SVNStatusSubscriber org.apache.subversion.javahl.
    eclipse导入svn中的maven工程项目
    Archive for required library xx cannot be read or is not a valid ZIP file
    oracle9i 精简版客户端界面没有显示实例名
    mybatis3 sqlsession
    RabbitMQ学习之:(一)初识、概念及心得
    mybatis expected at least 1 bean which qualifies as autowire candidate for this dependency
    mysql 5.6.20 数据库中文乱码解决方法
  • 原文地址:https://www.cnblogs.com/excellencesy/p/8653313.html
Copyright © 2020-2023  润新知