数组/链表/哈希表/树结构的优缺点


数组: 

  优点:

  1. 数组的主要优点是根据下标值访问效率会很高

  2.但是如果希望根据元素来查找对应的位置?

  3.比较好的方法是先对数组排序,再进行二分查找

  缺点:

  需要先对数组排序,生成有序数组,才能提高查找效率

  数组在插入和删除数据时,需要有大量的位移操作(插入中间或者首部时),效率很低

链表:

  优点:

  1.链表的插入和删除操作效率都很高

  缺点:

  查找效率低,需要从头依次查找链表的每一项

  即使插入和删除效率高,但是如果插入和删除中间位置,还是要重头找到对应的数据

哈希表:

  优点: 插入/查询/删除效率非常高

  缺点:

  1.空间利用率不高,底层使用的是数组,并且使用的某些单元是没有被利用的

  2.哈希表中的元素是无序的,不能按照固定的顺序来遍历哈希表中的元素

  3.不能快速的找出哈希表中的最大值或者最小值

树结构:

  在某种场景下,使用树结构会更加方便

  因为树结构是非线性,可以表示一对多

  比如文件的目录结构

  对于一个平衡树的插入和查找等效率为O(logN)      平衡树: 树两边的数据均匀分布  非平衡树: 树两边的数据不均匀分布

  连续插入有序的数据,树分布不均匀,变成一个链表结构,插入和查找等效率变成 O(N)  

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM