首页 > 代码库 > Java数据结构和算法(一):综述

Java数据结构和算法(一):综述

数据结构和算法能起到什么作用?

  数据结构是指数据在计算机内存空间或磁盘中的组织形式。数据结构包括数组、链表、栈、二叉树、哈希表等等。算法对这些结构中的数据进行各种处理,例如,查找一条特殊的数据项或对数据进行排序。

数据结构的概述
数据结构 优点 缺点
数组 插入快,如果知道下标,可以非常快地存取 查找慢,删除慢,大小固定
有序数组 比无序数组查找快 删除和插入慢,大小固定
提供后进先出方式的存取 存取其他项很慢
队列 提供先进先出方式的存取 存取其他项很慢
链表 插入快,删除快 查找慢
二叉树 查找、插入、删除都快(如果树保持平衡) 删除算法复杂
红-黑树 查找、插入、删除都快。树总是平衡的 算法复杂
2-3-4树 查找、插入、删除都快。树总是平衡的。 算法复杂
哈希表 如果关键字已知则存取极快。插入快 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分
插入、删除快,对最大数据项的存取很快 对其他数据项存取慢
对现实世界建模 有些算法慢且复杂
算法的概述

  许多将要讨论到的算法直接适用于某些特殊的数据结构。对于大多数数据结构来说,都需要知道如何

  • 插入一条新的数据项
  • 寻找某一特定的数据项
  • 删除某一特定的数据项

  还需要知道如何迭代地访问某一数据结构中的各数据项,以便进行显示或其他操作。另一种重要的算法范畴是排序,排序有许多种算法,后面将会讨论到。递归的概念在设计某些算法时十分重要。递归意味着一个方法调用它自身。

 

Java数据结构和算法(一):综述