数据结构第一章基本概念

第一章 基本概念

基本概念和术语

  • 数据(数据是信息的载体,是描述客观事物的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合)
  • 数据元素(数据元素是数据的基本单位,通常作为一个整体进行考虑和处理)
  • 数据结构(数据结构是相互之间存在一种或多种特定关系的数据元素的集合)
  • 逻辑结构(数据元素之间的逻辑关系,即从逻辑关系上描述数据)
  • 存储结构(数据结构在计算机中的表示,又称映像,也是物理结构)

数据类型(一个值的集合和定义在此集合上的一组操作的总称)

  • 原子类型(其值不可再分的数据类型)
  • 结构类型(其值可以再分解为若干成分(分量)的数据类型)
  • 抽象数据类型(一个数据元素集合以及在这些数据上的操作)

数据结构

  • 逻辑结构
    • 线性结构(一对一)
      • 线性表
      • 受限线性表
        • 栈和队列
      • 数组
    • 非线性结构
      • 集合(同属于一个集合)
      • 树形结构(一对多)
      • 图状结构(多对多)
  • 存储结构
    • 顺序存储(逻辑相邻的元素,存储单元的物理位置也相邻)
      • 优点
        • 随机存取
      • 缺点
        • 只能使用相邻的一整块存储单元,可能产生较多的外部碎片
    • 链式存储(借助指示元素的存储地址的指针来表示元素之间的逻辑关系)
      • 优点
        • 不会出现碎片现象,能充分利用所有存储单元
      • 缺点
        • 每个元素因存储指针而占用额外的存储空间
        • 只能实现顺序存取
    • 索引存储(存储元素信息的同时,还建立附加的索引表)
      • 优点
        • 检索速度快
      • 缺点
        • 附加的索引表额外占用存储空间
        • 增加和删除数据也要修改索引表,会花费较多时间
    • 散列存储(根据元素的关键字直接计算除该元素的地址,又称哈希存储
      • 优点
        • 检索、增加、删除结点操作快
      • 缺点
        • 若散列函数不好,则可能出现元素存储单元的冲突,解决冲突会增加时间、空间开销
  • 数据的运算(施加在数据上的运算包括运算的定义和实现)
    • 定义针对逻辑结构,指出运算的功能
    • 实现针对存储结构,指出运算的具体操作步骤

算法及评价

  • 算法的定义:对特定问题求解步骤的一种描述。

  • 程序的定义:程序是计算机指令的有序集合,是算法用某种程序设计语言的表述,是算法在计算机上的具体实现。

  • 特性(有穷性、确定性、可行性、输入、输出)

  • “好”算法(正确性、可读性、健壮性、效率和低存储量需求)

  • 算法复杂度

    • 时间复杂度
      O ( n ) < O ( log ⁡ 2 n ) < O ( n ) < O ( n log ⁡ 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(n)<O(\log_{2}{n})<O(n)<O(n\log_{2}{n})<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n) O(n)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
    • 空间复杂度
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值