数据结构(一)

数据结构定义

  • 数据:是描述客观事物额数和字符的集合。从计算机角度看,所有能输入到计算机中并被计算机处理的符号集合。
  • 数据元素:数据的基本单位。也称元素,节点,定点,记录等。
  • 数据项:具有独立含义的最小数据单位,也称字段和域。
  • 数据对象:性质相同的数据元素的集合。
  • 数据结构:所有数据元素以及数据元素之间的关系。(带结构的数据元素的集合)
  • 数据结构包括以下几个方面:
    • 数据的逻辑结构
    • 数据的存储结构
    • 数据的运算
  • 数据的逻辑结构类型:
    • 集合:数据元素之间除了“同属一个集合的关系”没有其他关系
    • 线性结构:结构中的节点存在一对一的关系。例如:线性表
    • 树形结构:结构中的节点存在一对多的关系。例如:二叉树
    • 图形结构:结构中的节点存在多对多的关系。
      树形结构和图形结构统称非线性结构。

表示:
B=(D,R)
B是数据结构,D是集合,R是D上的二元关系集合

  • 数据的存储结构类型:
    • 顺序存储结构:把逻辑上相邻节点存储在物理位置上相邻的存储单元。优点:节约存储空间,原因:节点之间的逻辑关系没有占用额外的存储空间。缺点:不便于修改,原因:修改时需要移动一系列的节点。例如:数组。
  • 链式存储结构:节点之间的逻辑关系由附加的指针字段表示。优点:便于修改。原因:进行删改插时只需改变相应节点的指针域。缺点:存储空间利用率较低,不能随机存取,原因:存储单元有一部分用来存储节点之间的逻辑关系;逻辑上相邻的节点在存储空间中不一定相邻。
  • 索引存储结构:在存储节点信息的同事,还建立附加的索引表。优点:可进行随机访问。缺点:增加了索引表,导致存储空间利用率降低。
  • 散列(哈希)存储结构:根据节点的关键字通过哈希函数计算出一个值,并将这个值作为该节点的存储地址。优点:查找速度快。该存储方法只存储节点数据,不存储节点之间的逻辑关系。

算法

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

    • 有穷性:有穷步骤,有穷时间内完成
    • 确定性
    • 可行性
    • 有输入
    • 有输出
      算法设计的目标:
      正确性,可读性,可使用性,健壮性,高效率与低存储量需求。
  • 算法效率分析

    • 方法:事后统计法,事前分析估算法
      算法执行的时间大致为基本运算所需的时间与其运算次数的乘积

公式:T(n)=O(f(n))
T(n)基本运算执行次数;
O表示随问题规模n的增大算法执行时间的增长率和f(n)的增长率相同。

常数阶:O(1),一个没有循环的算法中基本运算次数与问题规模n无关
线性阶:O(n),一个只有一重循环的算法中基本运算次数与问题规模n成线性关系

各种不同数量级对应的值存在如下关系:
O(1) < O(logn) < O(n) < O(n*logn) < O(n2) < O(n3) < O(2n) < O(n!)
- 算法存储空间分析
一个算法的存储量包括输入数据所占空间,程序本身所占空间和辅助变量所占空间。对算法进行存储空间分析时值考查辅助变量所占空间
公式:S(n)=O(g(n))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值