【数据结构】第一章:数据结构概论

系列文章目录

第一章:数据结构概论

第二章:线性表

第三章:栈、队列和数组

第四章:树和二叉树

第五章:图

第六章:查找

第七章:排序

前言

数据结构是计算机组织数据和存储数据的方式,是指一组相互之间存在一种或多种特定关系的数据的组织方式和在计算机内的存储方式,以及定义在该数据上的一组操作。


提示:以下是本篇文章正文内容,下面案例可供参考

  • 一、基本概念和术语

    • 1>数据、数据元素、数据项

      • 数据:
        • 指所有被计算机存储、处理的对象。例如(字符串、表格、图像和声音等)
      • 数据元素:
        • 由数据项组成,数据的基本单位,在程序中作为一个整体而加以考虑和处理。
      • 数据项:
        • 在数据库中数据项又称为字段或者域。是数据不可分割的最小单位。
      • 三者的关系:
        • 数据可由若干个数据元素组成,而数据元素又由若干个数据项组成。
    • 2>数据逻辑结构、数据存储结构

      • 数据逻辑结构:

        • 是指数据元素之间的逻辑关系,也就是指数据元素之间的关联方式。
          • 四类基本的数据组织形式:集合、线性结构、树形结构、图结构。
            • 集合:
              • 任意两个结点之间都没有邻接关系,组织形式松散。(一盘散沙)
            • 线性结构:
              • 结点按逻辑关系依次排列形成一条“链”,结点之间一个一个依次相邻接。(一对一的关系)
            • 树形结构:
              • 具有分支、层次性,其形态像自然界中的树,上层的结点可以和下层多个结点相邻接,但是下层结点只能和上层一个结点相邻接。(一对多的关系)
            • 图结构:
              • 各个结点按逻辑关系互相缠绕,任何两个结点都可以相邻接,最复杂。(多对多的关系)
        • 注意点:
          • 逻辑结构与数据元素本身的形式、内容无关。
          • 逻辑结构与数据元素相对位置无关。
          • 逻辑结构与所含结点个数无关。
      • 数据存储结构:

        • 数据的存储结构:是数据逻辑结构在计算机中的实现。
        • 存储结构包括以下两个部分:

          • 存储数据元素、数据元素之间的关联方式
            • 数据之间的关联方式:
              • 链式存储方式:
                • 是指每个存储结点除了含有一个数据元素外,还包含指针,每个指针指向一个与本结点有逻辑关系的结点,用指针表示数据元素之间的逻辑关系。(如:链表)
              • 顺序存储方式:
                • 是指所有存储结点存放在一个连续的存储区里。利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系。(如:数组)
              • 除了上述两种存储方式外,还有索引存储方式和散列存储方式。
    • 3>运算,算法,算法分析

    •  
      • 运算:
        • 是指在任何逻辑结构上施加的操作,即对逻辑结构的加工。
      • 加工型运算:
        • 改变了原逻辑结构的“值”,如结点个数、结点内容等。
      • 引用型运算:
        • 不改变原逻辑结构个数和值,只从中提取某些信息作为运算的结果。
      • 基本运算:
        • 建立、查找、读取。插入和删除等。
      • 算法:
        • 是计算机科学的一个基本概念,也是程序设计的一个核心概念。
      • 算法分析:
        • 通常评价算法好坏的包括以下几个方面:
          • 正确性
            • 能正确的实现预定的功能,满足具体问题的需要。
          • 易读性
            • 易于阅读、理解和交流,便于调试、修改和扩充。
          • 健壮性
            • 即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的 运行结果。
          • 时空性
            • 一个算法的时空性是指该算法的时间性能(或时间效率)和空间性能(或空间效率),前者是算法包含的计算量,后者是算法需要的存储量。
    • 时间复杂度

      • 一般情况下,一个算法的时间复杂度是算法输入规模的函数。
      • 最坏情况时间复杂性:
        • 算法在所有输入下的计算量的最大值作为算法的计算量。
      • 平均时间复杂性:
        • 算法在所有输入下的计算量的加权平均值作为算法的计算量。
    •  
      • 时间复杂度大小:
        • 常数阶:
          • O(1):即算法的时间复杂度与输入规模n无关或n为常数的情况下。
        • 对数阶:
          • O(log n)
        • 线性阶:
          • O(n)
        • 平方阶:
          • O(n^2)
        • 指数阶:
          • 2^n
        • 通常认为,具有指数阶量级的算法是实际不可计算的,而量级低于平方阶的算法是高效的。
          • O(1)<O(log n)<O(n)<O(nlong n)<O(n^2)<O(N^3)<O(2^n)<O(n!)<O(n^N)
    • 空间复杂度

      • 是对算法在运行过程中临时占用存储空间大小的量度,记作S(n)=O( f(n) )。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值