算法概述
数据结构是一种组织数据以便有效使用数据的系统方法。以下术语是数据结构的基础术语。
- 接口 - 每个数据结构都有一个接口。 Interface表示数据结构支持的操作集。接口仅提供支持的操作列表,它们可以接受的参数类型以及返回这些操作的类型。
- 实现 - 实现提供数据结构的内部表示。 实现还提供了数据结构操作中使用的算法的定义。
数据结构的特征
- 正确性 - 数据结构实现应正确实现其接口。
- 时间复杂度 - 数据结构的运行时间或操作的执行时间必须尽可能小。
- 空间复杂性 - 数据结构操作的内存使用应尽可能少。
需要数据结构
随着应用程序越来越复杂且数据越来越丰富,应用程序现在面临三个常见问题。
- 数据搜索 - 考虑 一个商店的100万(10 6)件商品的库存。如果应用程序要搜索项目,则每次减慢搜索速度时,它必须搜索100万(10 6)个项目中的项目。随着数据的增长,搜索速度会变慢。
- 处理器速度 - 处理器速度虽然非常高,但如果数据增长到数十亿条记录,则会受到限制。
- 多个请求 - 由于成千上万的用户可以在Web服务器上同时搜索数据,因此即使快速服务器在搜索数据时也会失败。
为了解决上述问题,数据结构得以解决。可以在数据结构中组织数据,使得可以不需要搜索所有项目,并且几乎可以立即搜索所需数据。
执行时间案例
有三种情况通常用于以相对方式比较各种数据结构的执行时间。
- 最坏情况 - 这是特定数据结构操作占用最多时间的情况。 如果操作的最坏情况时间是ƒ(n),那么此操作将不会超过ƒ(n)时间,其中ƒ(n)表示n的函数。
- 平均情况 - 这是描述数据结构操作的平均执行时间的方案。 如果操作在执行中花费ƒ(n)时间,那么m次操作将花费mƒ(n)时间。
- 最佳案例 - 这是描述数据结构操作的最少可能执行时间的场景。 如果操作在执行中花费ƒ(n)时间,则实际操作可能花费时间作为最大的随机数作为f(n)。
基本术语
- 数据 - 数据是值或值集。
- 数据项 - 数据项是指单个值单位。
- 组项目 - 分为子项目的数据项称为组项目。
- 基本项目 - 不能分割的数据项称为基本项目。
- 属性和实体 - 实体是包含某些属性或属性的实体,可以为其指定值。
- 实体集 - 类似属性的实体形成实体集。
- Field - Field是表示实体属性的单个基本信息单元。
- 记录 - 记录是给定实体的字段值的集合。
- 文件 - 文件是给定实体集中实体的记录的集合。