各数据结构特点
工作一年了,把很多东西都给落下了,得赶紧拾起来~
要利用过年前的这半年时间把数据结构、算法基础、java、设计模式这些东西拾起来,形成自己的特点,不能再做万金油了,得有发光点,呵呵。
总结下各数据结构的特点:
数据结构 | 优点 | 缺点 | ||||||
数组 | 插入快,如果知道下标,可以非常快的存取 | 查找慢,删除慢,大小固定 | ||||||
有序数组 | 比无序数组查找快 | 删除、插入慢,大小固定 | ||||||
栈 | 提供后进先出方式的存取 | 存取其他项比较慢 | ||||||
队列 | 提供先进先出方式的存取 | 取其他项比较慢 | ||||||
链表 | 插入快,删除快 | 查找慢 | ||||||
二叉树 | 查找、插入、删除都快(如果数保持平衡) | 删除算法复杂 | ||||||
红-黑树 | 查找、插入、删除都快,树总是平衡的 | 算法复杂 | ||||||
2-3-4树 | 查找、插入、删除都快,树总是平衡的,类似的树对磁盘存储有用 | 算法复杂 | ||||||
哈希表 | 如果关键字已知则存取极快,插入快 | 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分 | ||||||
堆 | 插入、删除快,对最大数据项的存取很快 | 对其他数据项存取慢 | ||||||
图 | 对现实世界建模 | 有些算法慢且复杂 |