数据结构
数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排,数据结构包括数组、链表、栈、二叉树、哈希表等等,算法对这些结构中的数据进行各种处理,例如查找一条特殊的数据或者对数据进行排序。
- 数据结构可以解决的问题:
- 现实世界的数据存储
- 程序员的工具
- 建模
数据结构的概述
还可以从数据结构的优缺点来看待数据结构;
| 数据结构 | 优点 | 缺点 |
|---|---|---|
| 数组 | 插入快,如果知道下标可以快速的存取 | 查找慢、删除慢、大小固定 |
| 有序数组 | 比无序数组查找快 | 删除和插入慢、大小固定 |
| 栈 | 提供后进先出方式存取 | 存取其他项很慢 |
| 队列 | 提供先进先出方式存取 | 存取其他项很慢 |
| 链表 | 插入快、删除快 | 查找慢 |
| 二叉树 | 查找、插入、删除都快(如果树保持平衡) | 删除算法复杂 |
| 红-黑树 | 查找、插入、删除都快(树总是平衡的) | 算法复杂 |
| 2-3-4树 | 查找、插入、删除都快(树总是平衡的、类似的树对磁盘存储有用) | 算法复杂 |
| 哈希表 | 如果关键字已知则存取极快,插入快 | 删除慢,如果不知道关键字则存取很慢 |
| 堆 | 插入删除快,堆最大数据项的存取很快 | 对其他数据存取慢 |
| 图 | 对现实世界建模 | 有些算法慢且复杂 |
简单概念
- 数据库
- 我们将会使用数据库这个术语来表示在一定情况下所有要查阅的数据,数据库中的每一条数据都被认为是同一种格式的 。
- 记录
- 记录是数据库中划分的单元,它们为存储信息提供了一个结构模式,一条记录包含了某一个实体的所有信息。
- 字段
- 一条记录通常被划分为几个字段,一个字段保存某一种特定的数据。
- 关键字
- 在数据库中查找一条记录需要指定记录的某一个字段为关键字,通过这个特定的关键字进行查找。
小结
-
java.util 包中包含有诸如向量(一个可扩充的数组)、栈、库和哈希表等类型的数据结构,但是是封装好的,我们应该学习实现的细节,而不应该只是会使用别人的类库。
-
数据结构是指数据在计算机内存空间中或磁盘中的组织形式。
-
正确的选择数据结构会使程序的效率大大提高。
-
数据结构的例子有数组、栈和链表。
-
算法是完成特定任务的过程。
-
在 Java中算法经常通过类的方式实现。