📜  数据结构和算法-概述

📅  最后修改于: 2021-01-11 06:36:39             🧑  作者: Mango


数据结构是一种组织数据以便有效使用数据的系统方法。以下术语是数据结构的基础术语。

  • 接口-每个数据结构都有一个接口。接口表示数据结构支持的一组操作。接口仅提供支持的操作的列表,它们可以接受的参数类型以及返回这些操作的类型。

  • 实施-实施提供数据结构的内部表示。实现还提供了在数据结构操作中使用的算法的定义。

数据结构的特征

  • 正确性-数据结构实现应正确实现其接口。

  • 时间复杂度-数据结构的运行时间或操作的执行时间必须尽可能短。

  • 空间复杂度-数据结构操作的内存使用应尽可能少。

数据结构需求

随着应用程序变得越来越复杂和数据越来越丰富,当今应用程序面临三个常见问题。

  • 数据搜索-考虑一个商店的一百万(10 6 )件商品的库存。如果应用程序要搜索项目,则每次使搜索速度变慢时,它都必须搜索一百万(10 6 )个项目中的一个项目。随着数据的增长,搜索将变得越来越慢。

  • 处理器速度-处理器速度虽然很高,但是如果数据增长到十亿条记录,则会受到限制。

  • 多个请求-由于成千上万的用户可以在Web服务器上同时搜索数据,因此即使快速服务器在搜索数据时也会失败。

为了解决上述问题,数据结构得以抢救。可以以不需要搜索所有项目的方式将数据组织在数据结构中,并且几乎可以立即搜索所需的数据。

执行时间案例

通常有三种情况以相对方式比较各种数据结构的执行时间。

  • 最坏的情况-在这种情况下,特定的数据结构操作将花费最多的时间。如果操作的最坏情况时间为ƒ(n),则此操作将花费不超过ƒ(n)时间,其中ƒ(n)表示n的函数。

  • 平均情况-这是描述数据结构操作的平均执行时间的场景。如果一个操作花费ƒ(n)时间执行,则m个操作将花费mƒ(n)时间。

  • 最佳情况-这是描述数据结构操作最少可能执行时间的场景。如果某个操作在执行中花费ƒ(n)时间,则实际操作可能会花费时间作为随机数,而该随机数最大可能为ƒ(n)。

基本术语

  • 数据-数据是值或值集。

  • 数据项-数据项是指值的单个单位。

  • 组项目-分为子项目的数据项目称为组项目。

  • 基本项目-无法分割的数据项目称为基本项目。

  • 属性和实体-实体是包含某些属性或属性的实体,可以为其分配值。

  • 实体集-相似属性的实体形成一个实体集。

  • 字段-字段是表示实体属性的单个基本信息单元。

  • 记录-记录是给定实体的字段值的集合。

  • 文件-文件是给定实体集中实体记录的集合。