数据结构_day01_数据结构概论和算法分析

数据结构:

  数据结构:主要讨论数据表示数据处理的基本方法!           数据结构(数据的组织 + 存储)  ----->  决定程序效率
  算法:用来描述问题的解决方案,是具体的机械的操作步骤!          算法 + 数据结构 = 程序

  数据:能输入到计算机中并能使计算机程序识别和处理的符号
          数据分为:数值数据(整数、实数等)、非数值数据(文字、声音、图形等)。
  数据对象:是性质相同数据元素的集合;

  数据元素:组成数据的基本单位,一般是一个实体对象;
  数据项:组成数据元素的最小单位
  数据结构:相互之间存在一定关系的数据元素的集合,研究的就是数据对象中数据元素之间的关系
  数据类型:一组同类型数据集合的总称

  数据结构分两种结构:
      1、逻辑结构(概念结构)(数据结构之间的逻辑关系:集合、线性结构、树结构、图结构
      2、存储结构(物理结构)(顺序存储、链式存储)

算法:

  算法:对特定问题求解步骤的一种描述(指定有限序列)
      算法三个特性:1、有穷性、确定性、可行性
      算法可以无输入,但一定有输出
      算法的描述方法:1、自然语言;    (直观,冗长、人类交流常用文字语言、可能有二义性)
              2、流程图;    (流程框图)
              3、程序设计语言;    (C/C++等程序设计语言)
              4、伪代码    (自然语言+程序设计语言=》结合,表达自然语言,执行程序语言)
  算法分析:
      1、事后统计分析法;(不提倡使用,被淘汰)
      2、事前统计分析法   (
渐进复杂度
          1、时间复杂度;T(n)  当空间规模足够大,基本语句执行次数在渐进意义下的分析(事前)
          2、空间复杂度;   S(n)       排除本身输入输出,算法执行临时开辟的存储空间的数量级

  若两段算法的复杂度分别为 T1(n) T2(n)
      则:T1(n) + T2(n)  =  max(T1(n)  , T2(n) )
        T1(n) x T2(n)  =  T1(n)  x T2(n) 
  若T(n)是关于n的k捷多项式,那么T(n) = O(n^k)
  for循环时间复杂度等于循环次数乘于单体时间复杂度
  if-else的时间复杂度取各分支中最大复杂度分支复杂度

 

整体框架:

  数据结构:1、线性结构(顺序表(数组)、链表、栈、队列)
       2、非线性结构 (树、图)
       3、查找技术和排序算法

  逻辑结构
  物理结构

注意:顺序表和链表是基础
   栈和队列是重点!
   从设计和封装角度学习数据结构!

 

posted @   尘落曦枫  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示