• 数据结构-顺序表和链表之间优缺点


    1、顺序表存储

    原理:将表中元素一个个存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“ 顺序表”。

    优点:简单易用 使用的是联系的内存空间  可以借助CPU的缓存机制  预读取数组中的数据  所以访问效率比较高

    缺点:1.插入和删除比较慢

               2.不可以增长长度    

               3:如果申请的过大  系统可能没有足够的内存空间给分配,会导致内存不足,如果声明过小 就会导致不够用  如果不够用 只能申请一个更大的空间 还要把原数组的数据copy 过去  影响效率

    比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序  C# 中 如 ArrayList List 等

    2、链式表存储

    原理:链表存储是在程序运行过程中动态的分配空间,只要存储器还有空间,就不会发生存储溢出问题

    优点:插入和删除速度快,保留原有的物理顺序

    缺点:查找速度慢,因为查找时,需要循环链表访问  并且链式存储在内存中不连续  这样对CPU的缓存不友好  没办法做到预先读取  链表除了要存储本身数据外 还要额外维护 前 后节点的指针,对内存要求的严格的程序 是不友好的~而且链表频繁的删除和新增 会导致内存也频繁的申请 释放   容易产生内存碎片    导致GC 频繁的去回收  

    比如:插入或者删除一个元素时,只需要改变指针指向即可  C# 中 LinkedList<T>

    总结  在实际开发中  我们还是要权衡 自己的使用场景 来决定 使用什么样的数据结构

  • 相关阅读:
    代码是什么
    关于程序
    信息系统分析三原则
    设计的一个原则,妥协,不完美
    Algs4-1.4.30一个栈和一个steque实现的双向队列
    Algs4-1.4.31三个栈实现的双向队列
    Algs4-1.4.29两个栈实现的steque
    Algs4-1.4.27两个栈实现队列
    Algs4-1.4.28一个队列实现的栈
    *Algs4-1.4.26-三点共线-(未解决)
  • 原文地址:https://www.cnblogs.com/burg-xun/p/11739022.html
Copyright © 2020-2023  润新知