1.1数据结构和算法的基本概念

1.1.1数据结构的基本概念

1.1.1.1数据

是指所有能 输入 到计算机中并且被计算机程序处理的符号的总称。
例如,整数、实数和字符串都是数据。

1.1.1.2数据元素

数据元素是数据的基本单位。
一个数据元素可由若干数据项组成。
例如, 一本书的书目信息为一个数据元素,而书目信息的每一项(如书名、作者名等)为一个数据项。

1.1.1.3数据对象

数据对象是性质相同的数据元素的集合,是数据的一个子集。
例如,大写字母就是一个数据对象,大写字母数据对象是集合{‘A’,’B’, ···,’Z’} 。

1.1.1.4数据结构

数据结构是指相互之间存在一种或多种特定关系数据元素的集合
数据结构包括3 方面的内容:逻辑结构、存储结构 和 对数据的运算。

1.1.1.5数据的逻辑结构

想想离散数学中的术语,例如,图,树(一个字的)。
逻辑结构是对关系的描述。

  1. 线性结构

线性结构是指数据元素之间存在着 一对一 的线性关系的数据结构。
例如,( a1, a2, a3, ··· , an),a1 为第一个元素(唯一的第一个),an为最后一个元素(唯一的最后一个),此集合即为一个线性结构的集合。

  1. 非线性结构

结点存在着 一对多 的关系。
例如,树、栈

1.1.1.6数据的物理结构(存储结构)

想想可以利用编程语言写的东西,例如,数组。
存储结构是想计算机怎么存储。

  1. 顺序存储方法
    • 例如,数组,有序表。
  2. 链式存储方法
    • 例如,链表
  3. 索引存储方法
  4. 散列存储方法

    1.1.2算法的基本概念

    1.1.2.1算法

  • 算法可以理解为由基本运算及规定的运算顺序所构成的完整的 解题步骤 的描述,或者看成按照要求设计好

有限的确切的计算序列

  • 算法不是程序。

    1.1.2.2算法的特性

  1. 有穷性
    • 一个算法必须保证执行有限步之后结束。
  2. 确定性
    • 算法的每一步骤必须有确定的定义。
  3. 输入
  4. 输出
  5. 可行性

    • 通过已经实现的基本操作进行运算
    • 在有限次内实现

      1.1.2.3算法的设计目标

  6. 正确性

  7. 可读性
  8. 健壮性
  9. 高效率与低存储量需求

    1.2算法的时间复杂度与空间复杂度分析基础

    1.2.1概念

    image.png

    1.2.2解题方法