学习编程知识的同时,梳理知识,也便于以后查找
tags:《数据结构(c语言版)》、B站视频
目录
基本概念和术语
数据
数据是对客观事物的符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称。
数据元素
数据的基本单位。在计算机程序中通常作为一个整体进行考虑和处理。
有时,一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。
数据对象
性质相同的数据元素的集合,是数据的一个子集。
数据结构
相互之间存在一种或多种特定关系的数据元素的集合。(一种简单解释)
在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构
基本结构
根据数据元素之间关系的不同特性,通常可以分为下列4种基本结构:
- 集合。结构中数据元素除了“同属于一个集合”的关系外,没有其他关系。
- 线性结构。结构中的数据元素之间存在一个对一个的关系
- 树形结构。结构中的数据元素之间存在一个对多个的关系
- 图状结构或网状结构。 结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义
数据结构是一个二元组
Data Structure = (D,S)
- D 数据元素的有限集合
- S 是D上关系的有限集
待定
顺序存储结构、链式存储结构
算法
指令的有限序列
特性:
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
算法设计的原则
- 正确性
- 可读性
- 健壮性
- 高效率与低存储量需求
正确性
不能有语法错误。
可读性
算法主要是为了人的阅读与交流
健壮性
当输入的数据非法时,算法应当恰当地反映或进行相应处理。
如返回一个表示错误或错误性质的值。
高效率与低存储量需求
通常效率指算法执行时间,
存储量指的是执行过程中需要的最大存储空间
两者都与问题的规模有关。
算法效率的衡量方法和准则
通常有两种衡量算法效率的方法。
算法时间复杂度
和算法执行时间相关的因素
- 算法选用的策略
- 问题的规模
- 使用的编程语言
- 编译程序产生的机器代码质量
- 计算机执行指令的速度
事后统计法
缺点:
- 必须执行程序,要运行较多次数,花时间
- 其他因素掩盖算法本质
大O表示法
算法执行时间的增长率和f(n)
的增长率相同,则可以记作
T(n) = O(f(n))
T(n)称为算法的时间复杂度
算法 = 控制结构 + 原操作
(固有数据类型的操作)
算法的执行时间和原操作执行次数之和成正比
。
选取基本操作
的原操作,在该算法中重复执行的次数
作为算法运行时间的衡量准则。
算法空间复杂度
S(n) = O(g(n))
算法存储量
- 输入数据
- 程序本身
- 辅助变量
若输入数据所栴空间与算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间
。
若需要的额外空间相当于输入数据量来说是常数,则称此算法为原地工作
–END–