> 文档中心 > 开卷数据结构(4)—— 顺序表和链表比较

开卷数据结构(4)—— 顺序表和链表比较


💟作者简介:大家好,我是Ceylan_,可以叫我CC ❣️    
📝个人主页:Ceylan_的博客
🏆博主信息:平凡的大一学生,有着不平凡的梦

         专栏

  • 备战蓝桥杯   
  • 力扣每日一题
  • 开卷数据结构

⚡希望大家多多支持😘一起进步~❤️
🌈若有帮助,还请关注点赞收藏,不行的话我再努努力💪💪💪

目录

🌺前言

🌺空间性能的比较

🌺时间性能的比较、

        🌷存取元素的效率

        🌷逻辑结构与物理结构

        🌷查找的效率

        🌷插入或删除的效率

🌺总结

🌺每日金句


🌺前言

顺序表和链表的定义与具体操作

 在前文中,我们介绍了顺序表和链表的定义与具体操作,在实际应用中,由于它们各有自己的优缺点,使用哪一种存储结构,应该根据具体问题具体分析,通常从空间和时间两个方向作比较分析。

🌺空间性能的比较

顺序表的存储空间必须提前分配,元素个数受到限制。一但存储空间装满了就不能扩容,若继续添加元素,就会出现内存溢出。若提前分配空间过大,可能导致大量空间被闲置,若提前分配空间过小,可能造成溢出。

链表不需要为其提前分配空间,只要内存空间允许,链表就能无限增加元素。

🌺时间性能的比较、

        🌷存取元素的效率

顺序表是由数组实现的,它可以顺序存取,也可以随机存取。

链表是一种顺序存取结构,只能从表头顺序存取元素

        🌷逻辑结构与物理结构

采用顺序存储时,逻辑上相邻的元素,对应的物理元素位置也相邻

采用链式存储时,逻辑上相邻的元素,物理存储位置不一定相邻,对应的逻辑关系是由指针链接来表示的

        🌷查找的效率

对于按值找,两者的时间复杂度都为O(n)

对于按序号查找,顺序表可以随机访问,时间复杂度仅为O(1),链表的时间复杂度为O(n)

        🌷插入或删除的效率

对于顺序表,进行插入或删除时,要移动后方大量的元素,时间复杂度为O(n)

对于链表,在进行插入或删除时,不需要移动前后元素,只需要修改指针,时间复杂度为O(1)

🌺总结

1.当难以估计线性表的长度或存储规模时,不应采用顺序表,应采用链表。

2.若需要经常进行插入,删除操作时,不应采用顺序表,应采用链表。

3.若需要经常按序号访问结点值时,不应采用链表,应采用线性表。

🌺每日金句

行动中,有时会犯错。什么都不做,则永远在犯错                ——罗曼·罗兰

 本人不才,如有错误,欢迎各位大佬在评论区指正。有帮助的话还请【关注➕点赞收藏】,不行的话我再努努力💪💪💪

29b8255bcfec44b0b473a172c5323bca.png