01 入门 | 数据结构与算法

1. 数据

  1. 数据:数据是指对客观事物进行记录并且可以鉴别的抽象符号
  2. 数据元素:数据的基本单位,在计算机当中作为一个整体考虑
  3. 数据对象:具有相同性质的数据元素的集合
  4. 数据结构:计算机储存、组织数据的方式

2. 结构

  1. 逻辑结构:直接面向问题
    1. 集合
    2. 线性结构
    3. 树状结构
    4. 图结构
  2. 物理结构:面向计算机,数据元素的值+逻辑结构
    1. 连续设计:通过数据之间的相对位置来表示数据元素之间的逻辑关系
    2. 链接设计:通过存放的指针Pointer
  3. 逻辑结构和物理结构的区别和联系
    1. 区别:逻辑结构面向问题,物理结构面向计算机
    2. 联系:物理结构是面向计算机的具体的逻辑结构

3. 数据结构的运算

  1. 数据结构的组成部分
    • 逻辑结构:D_S=(D,S)
    • 存储结构
    • 数据操作
  2. 数据结构的运算
    1. 改变数据结构的运算操作
      1. 建立(Create)一个数据结构
      2. 销毁(Destroy)一个数据结构
      3. 从一个数据结构中删除(Delete)一个数据元素
      4. 从一个数据结构中插入(Insert)一个数据元素
    2. 不会改变数据结构本身的运算操作
      1. 对一个数据结构进行访问(Access)
      2. 对一个数据结构中的元素进行修改(Modify)
      3. 对数据结构中的所有元素进行排序(Sort)
      4. 对一个数据结构进行查找(Search)

4. 数据类型

  1. 数据类型:数据的取值范围 + 一系列操作
  2. 抽象数据类型(ADT):为了解决特定问题而定义的数据类型
  3. 二者的联系:数据类型是已定义好的抽象数据类型,抽象数据类型由数据类型组成

5. 算法

  1. 算法的概念:对特定问题求解方法的一种描述,是指令的有限序列
  2. 算法的特性
    1. 确定性:不能有二义性
    2. 可行性
    3. 输入/ 输出
    4. 有限性:一个算法总是在经历了有穷步的运算之后会终止
  3. 算法的描述方法
    1. 自然语言:用序号表示,避免自然段!
    2. 流程图
    3. 伪代码(Pseudocode)
    4. 直接代码
  4. 评价算法的标准
    1. 正确性、可读性、通用性
    2. 健壮性(Robustness):有容错处理
    3. 效率存储量需求:时间复杂度和空间复杂度
  5. 算法效率的分析
    1. 时间复杂度
      • c>0,n>n0,f(n)<cg(n),则f(n)=O(g(n))
      • c>0,n>n0,f(n)>cg(n), 则f(n)=Ω(g(n))
      • f(n)=O(g(n)),f(n)=Ω(g(n)),则f(n)=Θ(g(n))
      • 常用的时间复杂度O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
      • 简单的运算法则:
        • O(f)+O(g)=O(max(f,g))
        • O(f)O(g)=O(fg)
        • O(cf(n))=O(f(n))
    2. 空间复杂度

__EOF__

本文作者RadiumGalaxy
本文链接https://www.cnblogs.com/RadiumGalaxy/p/16750236.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   RadiumStar  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示