数据结构与算法预备知识

  • 什么是数据?
    数据用来描述客观事物, 可以输入计算机, 能够被计算机处理.
    数据元素是组成数据, 有一定意义的基本单位, 在计算机中通常作为整体处理.
    数据项一个数据元素可以由若干数据项组成, 数据项是数据不可分割的最小单位.
    数据对象是性质相同的数据元素的集合, 是数据的子集.
    数据类型是指一组性质相同的数据元素的集合以及定义在此集合上的一些操作的总称.

  • 什么是数据结构?
    数据结构是相互之间存在一种或多种特定关系的数据元素的集合, 按照角度不同可以将数据结构分为逻辑结构物理结构.

    1. 逻辑结构
      逻辑结构是指数据对象中数据元素之间的相互关系, 有集合结构 线性结构 树形结构 图形结构四种.
      集合结构中的数据元素除了同属一个集合外, 它们之间没有其他关系.
      线性结构中的数据元素是一一对应的关系.
      树形结构中的数据元素是一对多的层次关系.
      图形结构中的数据元素是多对多的关系.
      逻辑结构

    2. 物理结构
      物理结构是指数据的逻辑结构在计算机中的存储形式, 有顺序存储结构 链式存储结构两种.
      顺序存储结构是将数据元素存放在地址连续的存储单元里, 通过顺序存储的方式反映数据元素间的线性关系.
      链式存储结构是将数据元素存放在任意存储单元里, 通过其他手段反映数据元素间的关系.

  • 什么是算法?
    算法是对特定问题求解步骤的描述. 算法具有输入 输出 有穷性 确定性 可行性五个基本特性.

  • 算法的时间复杂度与空间复杂度
    时间复杂度:语句总的执行次数T(n)=O(f(n)), 它表示随问题规模n的增大, 算法执行时间的增长率和函数f(n)的增长率相同, 称为时间复杂度. 其中n为问题规模.

    粗略估计算法运行时间的法则:
    (1) 一次for循环的运行时间至多是该for循环内语句(包括测试语句)的运行时间乘以迭代的次数.
    (2) 在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有for循环的大小的乘积.
    (3) 一组顺序语句的运行时间为各语句的和.
    (4) 一个if/else语句的运行时间不超过判断再加上if分支语句和else分支语句中运行时间长者的总的运行时间.

    常用的时间复杂度所耗费的时间:
    O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

    空间复杂度:运行算法所需的存储空间S(n)=o(f(n))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值