- Java 数据结构与算法 教程
- Java 数据结构与算法 - 首页
- Java 数据结构与算法 - 概述
- Java 数据结构与算法 - 环境搭建
- Java 数据结构与算法 - 算法
- Java 数据结构与算法 - 数据结构
- Java 数据结构与算法 - 数组
- Java 数据结构与算法 - 链表
- Java 数据结构与算法 - 双向链表
- Java 数据结构与算法 - 循环链表
- Java 数据结构与算法 - 栈
- 数据结构与算法 - 表达式解析
- Java 数据结构与算法 - 队列
- Java 数据结构与算法 - 优先队列
- Java 数据结构与算法 - 树
- Java 数据结构与算法 - 哈希表
- Java 数据结构与算法 - 堆
- Java 数据结构与算法 - 图
- Java 数据结构与算法 - 搜索技术
- Java 数据结构与算法 - 排序技术
- Java 数据结构与算法 - 递归
- Java 数据结构与算法 有用资源
- Java 数据结构与算法 - 快速指南
- Java 数据结构与算法 - 有用资源
- Java 数据结构与算法 - 讨论
Java 数据结构与算法 - 概述
什么是数据结构?
数据结构是一种以特定方式组织数据,以便高效使用的方法。以下术语是数据结构的基础术语。
接口 - 每个数据结构都有一个接口。接口表示数据结构支持的操作集。接口仅提供支持的操作列表、它们可以接受的参数类型以及这些操作的返回类型。
实现 - 实现提供了数据结构的内部表示。实现还提供了数据结构操作中使用的算法的定义。
数据结构的特征
正确性 - 数据结构实现应正确实现其接口。
时间复杂度 - 数据结构操作的运行时间或执行时间应尽可能短。
空间复杂度 - 数据结构操作的内存使用量应尽可能少。
数据结构的必要性
随着应用程序变得越来越复杂和数据丰富,如今应用程序面临三个常见问题。
数据搜索 - 考虑一个商店拥有 100 万 (106) 件商品的库存。如果应用程序要搜索一件商品。它每次都必须在 100 万 (106) 件商品中搜索商品,从而减慢搜索速度。随着数据量的增长,搜索会变得越来越慢。
处理器速度 - 尽管处理器速度非常高,但如果数据增长到数十亿条记录,它仍然会受到限制。
多请求 - 由于数千名用户可以同时在 Web 服务器上搜索数据,即使是最快的服务器在搜索数据时也会出现故障。
为了解决上述问题,数据结构可以提供帮助。数据可以以某种方式组织到数据结构中,这样就不需要搜索所有项目,并且可以几乎立即搜索所需的数据。
执行时间案例
通常有三种情况用于以相对方式比较各种数据结构的执行时间。
最坏情况 - 这是特定数据结构操作可能花费的最长时间。如果操作的最坏情况时间为 ƒ(n),则此操作花费的时间不会超过 ƒ(n),其中 ƒ(n) 表示 n 的函数。
平均情况 - 这表示数据结构操作的平均执行时间。如果操作执行时间为 ƒ(n),则 m 个操作将花费 mƒ(n) 时间。
最佳情况 - 这表示数据结构操作的最小可能执行时间。如果操作执行时间为 ƒ(n),则实际操作可能花费的时间为随机数,其最大值为 ƒ(n)。