第一章 数据结构的基本概念

第一章:数据结构的基本概念#

定义#

  • 在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构(Structure)。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
  • 数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

逻辑结构#

  • 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的
  • 数据的逻辑结构分为线性结构和非线性结构

物理结构#

  • 存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。

    • 顺序存储:存储的物理位置相邻。(p.s. 物理位置即信息在计算机中的位置。)

      • 优点:可以随机存取/顺序存取
      • 缺点:自能使用一整块相邻的存储单元,可能产生较多外部碎片
    • 链接存储:存储的物理位置未必相邻,通过记录相邻元素的物理位置来找到相邻元素。

      • 优点:不会出现碎片情况
      • 缺点:只能顺序存取;会因为指针而占用额外的存储空间
    • 索引存储:存储结点时,额外存储地址。形如:<关键字,地址>

      • 优点:检索速度快

      • 缺点:增加了附加的索引表,会占用更多空间

        ​ 增删数据时也要改索引表,花更多时间

    • 散列存储:通过关键字直接计算出元素的物理地址。

      • 优点:查找,增加,删除速度快
      • 缺点:如果散列函数选的不好,会出现元素存储单元冲突,解决冲突会增加时空开销

算法的五个特征#

  • 1,有穷性:有限步之后结束
  • 2,确定性:不存在二义性,即没有歧义
  • 3,可行性:比如受限于计算机的计算能力,有些算法虽然理论上可行,但实际上无法完成。
  • 4,输入:能被计算机处理的各种类型数据,如数字,音频,图像等等。
  • 5,输出:一至多个程序输出结果。

算法的复杂度#

  • 时间复杂度:
    • 它用来衡量算法随着问题规模增大,算法执行时间增长的快慢;执行算法所需的计算工作量;基本操作的执行次数
    • 是问题规模的函数:T(n)是时间规模函数 时间复杂度主要分析T(n)的数量级
    • T(n)=O(f(n)) f(n)是算法中基本运算的频度(算法中语句执行次数)(O(f(n)) 表示f(n)是T(n)的某种上界); 一般我们考虑最坏情况下的时间复杂度
  • 空间复杂度:
    • 它用来衡量算法随着问题规模增大,算法所需空间的快慢;执行这个算法所需要的内存空间;
    • 是问题规模的函数:S(n)=O(g(n)) ;算法所需空间的增长率和g(n)的增长率相同。

概要: 复杂度计算为重点#

  • 常用的时间复杂度大小关系:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)
  • 复杂度如何计算
    • 时间复杂度计算(单个循环体)
      • 直接关注循环体的执行次数,设为k
    • 时间复杂度计算(多个循环体)
      • 两个运算规则:乘法规则,加法规则

作者:stdxiaozhang

出处:https://www.cnblogs.com/stdxiaozhang/p/13375302.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

吼吼,如果对你有帮助的话,可以点个赞呀!

posted @   啊哈小张同学  阅读(223)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示