数据结构总结 之 基本概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Albert_Bolt/article/details/82356542

基本概念


数据(data)
  • 是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。
  • 分为:数值性数据(整数、定点数、浮点数)
              非数值性数据(文字数据)
数据元素(data element)
  • 数据的基本单位,又称为元素、结点、记录。
  • 一个数据元素可以由若干数据项(Data Item)组成。
数据项(data item)
  • 是具有独立含义的最小标识单位。
数据对象(data object)
  • 具有相同性质的数据元素的集合。
  • 分为:整数数据对象
               字母字符数据对象
数据结构(data structure)
  • 某一数据对象的所有数据成员之间的关系。
  • Data_Structure = {D, S}
  • 其中,D 是数据对象, S 是对象中所有数据成员之间的关系的有限集合。
  • 四个基本结构:集合、线性结构、树形结构、网状结构
数据的逻辑结构(logical structure)

分类:线性结构:线性表
           非线性结构:树、图(或网络)

数据的存储结构(物理结构)(physical structure)
  • 从逻辑关系上描述数据
  • 从具体问题抽象出来的数据模型
  • 数据结构在计算机中的表示,依赖于计算机语言。
  • 分类:顺序存储表示、链接存储表示、索引存储表示、散列存储表示
数据处理(data process)
  • 将收集到的数据加以系统的处理,归纳出有价值的信息。
  • 包括:编辑、排序、归并、分配、建档、更新、计算、链表、查找、查询、分类、摘要、变换
数据类型(data type)
  • 一个值的集合和定义在这个值集上的一组操作的总称
  • 分类:整型 int 、字符型 char 、浮点型 float 、双精度型 double 、无值 void
抽象数据类型(Abstract Data Type)
  • 一个数学模型以及定义在此数学模型上的一组操作
  • 抽象数据类型 = 数据结构 + 定义在此数据结构上的一组操作
  • 表示:三元组(D,S,P),D是数据对象,S是D上的关系集,P是对D的基本操作集
  • 实现:抽象数据类型:类 class
               数据对象:数据成员
               基本操作:成员函数(方法)
  • 类的三种访问级别
    • Private 私有成分(只允许类的成员函数进行访问)
    • protected 保护成分(只允许类的成员函数及其子孙类进行访问)
    • public 公有成分(允许类的成员函数、类的实例及其子孙类、子孙类的实例进行访问)
程序产生的五个阶段
  • 需求(输入输出)
  • 设计(编写算法)
  • 分析(选择最优的算法)
  • 细化与编码(编写程序)
  • 验证(程序验证、测试、调试)
算法(algorithm)
  • 为了解决某类问题而规定的一个有限长的操作序列 。
  • 特性:
    • 有穷性:算法在执行有穷步后能结束
    • 确定性:每步定义都是确切、无歧义
    • 可行性:每一条运算应足够基本
    • 输入:有0个或多个输入
    • 输出:有一个或多个输出
算法的性能标准(performance)
  • 正确性:不含语法错误、对所有数据运行正确
  • 可读性
  • 效率:高效、低存储
  • 健壮性:当输入非法数据时,也能作出适当反应
空间复杂度度量(space complexity)
  • 对算法在运行过程中临时占用存储空间大小的量度
  • 包括:存储空间的固定部分、可变部分
时间复杂度度量(time complexity)
  • 算法中语句重复执行次数的数量级就是时间复杂度。
  • 表示方法:T(n)=O(f(n)),f(n)表示基本操作重复执行的次数,是n的某个函数,随问题规模n的增大,算法执行时间的增长率和f(n)的增长率属于同一数量级
  • 运行时间 = 算法中每条语句执行时间之和。
  • 每条语句执行时间 = 该语句的执行次数(频度)* 语句执行一次所需时间。
  • 优劣次序:O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n)

猜你喜欢

转载自blog.csdn.net/Albert_Bolt/article/details/82356542
今日推荐