数据结构的定义:

1)数据是所有能被输入到计算机中,且能被计算机处理的符号的集合
2)数据是计算机操作的对象的总称,也是计算机处理的信息的某种特定的符号表示形式

(1)数据元素又被称为数据节点或者数据记录
是数据中的一个个体,数据的基本单位

(2)数据结构
带结构的数据元素的集合 (这里强调元素的集合,ID Status Type)
相互之间存在着某种特定关系的数据元素的集合(比如上面3113,3112两两相临就存在联系,线性关系)
数据以及数据元素相互之间的联系

(3)数据的存储结构
数据元素及其关系在计算机存储器中的存储方式,也称为数据的物理结构

比如说我想在计算机中存储 { ID  Status  Type}
可以实现为常用的Json类型 {"id":3113,"status":"Fixed","Type":"Gerrit""id":3112,"status":"Opened","Type":"Bugzilla"}
定义好这种类型的数据结构就意味着要在计算机中分配存储空间用以保存数据,上图中显示给用户看的这个表格数据就是计算机已经
实现好的存储结构,是客观存在的数据结构所以也成为物理结构

(4)数据的运算
在上面存储结构的基础上可以进行一些增加修改和删除的操作

(5)数据结构的表示
该表中的记录顺序反映了数据元素之间的逻辑关系,为线性关系
用ID标识每条数据记录,数据间的逻辑关系表示为:<3111,3112>,<3112,3113>这样就确定了每条数据所在的位置

(6)逻辑结构类型
线性结构

  • 节点之间,一对一
  • 开始节点和终端节点都是唯一的
  • 除了开始节点和终端节点以外,其余节点都有且仅有一个前驱节点,有且仅有一个后继节点

树形结构,节点之间一对多

  • 开始节点唯一,终端节点不唯一。
  • 除终端节点以外,每个节点有一个或多个后续节点
  • 除开始节点外,每个节点有且仅有一个前驱节点

图形结构,多对多

没有开始节点和终端节点,所有节点都可能有多个前驱节点和多个后继节点

算法及其描述

(1)算法的定义:算法是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其
中每一条指令表示一个或多个操作。

(2)算法的重要的特性

  • 有穷性:在有穷步之后结束
  • 可行性:可通过基本运算有限次执行来实现
  • 有输入
  • 有输出

(3)算法和程序的关系?
一个计算机程序是对一个算法使用某种程序设计语言的具体实现。算法必须可终止,意味着不是所有的计算机程序都是算法。

(4)算法复杂度
传统情况下效率的概念

  • 单位时间完成的工作量
  • 指最有效地使用社会资源以满足人类的愿望和需要

(5)算法的效率

有效地使用计算资源满足需求

  • 时:用时短(CPU的计算资源)使用cpu在最短时间内完成运算
  • 空:耗费的内存少(存储资源)尽可能占用少的内存空间,可以多用计算机跑几次算法

何为“用时短”的算法?
比如你这个算法是在超级计算机中运行的还是在普通计算机中运行的,这样不能叫用时短
所以:

  • 不能用程序执行时间比较效率
  • 执行的环境不同
  • 实现的语言不同
  • 其他因素

用基本运算的次数度量算法的时间复杂度

  • 算法执行时间大致为基本运算所需的时间与其运算次数的乘积。
  • 基本运算的一般是最深层循环内的语句

(6)算法的时间复杂度
原理:在一个算法中,进行基本运算的次数越少,其运行时间也就相对地越少;基本运算次数越多,,其运行时间也就相对地越多。
定义:把算法中包含基本运算次数的多少称为算法的时间复杂度,也就是说,一个算法的时间复杂度是指该算法的基本运算次数。
度量:算法中基本运算次数T(n)是问题规模n的某个函数f(n),记作:T(n)=O(f(n))

“大O”

  • 表示时间复杂度的“量级”
  • 随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。

比如:T(n)=5n2-2n+10000=O(n2)

  • 只关注T(n)的最高阶,忽略其低阶项和常系数,这样既可简化T(n)的计算,又能比较客观地反映出当n很大时算法的时间性能。
  • 算法分析只关心n很大时的表现。

(7)复杂度的量级

  1. O(1),常数阶 复杂度与问题规模n无关 比如:没有循环的算法
  2. O(log2n),对数阶 同 O(lgn), O(lbn)
  3. O(n),线性阶 与问题规模n的增长呈线性增大关系, 比如:有执行n次的一重循环的算法
  4. O(nlog2n) 线性对数阶
  5. O(n2),平方阶 多项式阶算法为有效算法。
  6. O(n3),立方阶 多项式阶算法为有效算法。
  7. O(2n),指数阶

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)

数据结构和算法概念理解相关推荐

  1. 基础数据结构和算法概念

    本文涉及更多的是概念,代码部分请参考之前写过的 2 篇博客 排序算法 基于Javascript 基本数据结构和查找算法 本文主要是基础的数据结构和算法概念,可能部分地方会涉及更高级的算法和算法,具体内 ...

  2. 什么是算法?数据结构与算法概念

    算法的概念 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或 ...

  3. 【浅学数据结构】算法概念篇

    一.什么是算法? 算法是解决特定问题求解步骤的描述,在计算机中则表现为一个或多个指令的组合规则:常用的经典算法有:循环累加求和/高斯求和.二叉树查找.冒泡排序.散列算法查找(哈希表)等. 二.算法与数 ...

  4. 数据结构与算法 / 概念

    @time 2019-07-15 @author Ruo_Xiao 一.概念 1.数据结构:一组数据的存储结构. 2.算法:       操作数据的一组方法. 3.二者的关系: (1)数据结构是为算法 ...

  5. 数据结构与算法-概念

    计算机从解决数值计算问题到解决生活中的问题 现实生活中的问题涉及不同个体间的复杂联系 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系而不是研 ...

  6. 数据结构与算法——深入理解哈希表

    文章目录 哈希表 优点与缺点 哈希化 冲突 基于线性探测的开放地址法 插入 查找 删除 性能问题 基于二次探测的开放地址法 基于再哈希法的开放地址法 链地址法 哈希表实现方法的选择 参考 哈希表 哈希 ...

  7. 名词解释 算法的有限性_数据结构复习之【数据结构和算法概念】

    一.概念 数据结构就像是一个催化剂,如果没有原料是无用的,单是有了算法就能帮算法更快的实现任务: 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,简单地说是数据之间的各种关系的集合. 程 ...

  8. 防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!

    大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻- 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻 ...

  9. 数据结构与算法——概念

    概念 数据结构的概念 算法的特性 算法设计的准则 算法效率的度量 执行复杂度 空间复杂度 结论 数据结构的概念 数据元素之间不是独立的,存在特定的关系,这些关系即结构: 数据结构指数据对象中数据元素之 ...

最新文章

  1. 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...
  2. 部署OpenStack问题汇总(五)--openstack中删除虚拟主机,状态一直未deleting
  3. mysql如何实现逻辑自增_每日一面 - mysql 的自增 id 的实现逻辑是什么样子的?
  4. OpenGL:关于获取渲染结果的深度信息的问题(二)
  5. 3个可以写进简历的京东AI NLP项目实战
  6. CCF201412-2 Z字形扫描(模拟)
  7. GNU宣言——Ubuntu*操作系统将ubuntu精神带到了软件世界
  8. 小夜灯离线语音识别芯片IC 声控小夜灯IC
  9. 鸿蒙系统屏幕解锁问题,鸿蒙系统解锁卡退黑屏
  10. PHP快速入门指南-基础篇一
  11. 人工智能产业链的三个核心,底层硬件、通用AI技术及平台、应用领域相关公司盘点
  12. 极限-确定常数使得阶数尽可能为高的无穷小
  13. 经济观察:开业三周年 亚投行打消外界四大质疑
  14. 【渝粤教育】电大中专电子商务网站建设与维护 (20)作业 题库
  15. 树莓派csi摄像头检测不到,没有/dev/video0,supported=0 detected=0等问题的解决方法
  16. RF 电路设计中的常见问题及解决方案
  17. 毕业论文知识点记录(六)——基于R语言优化maxent模型
  18. 单机安装Hive和Zepplin
  19. pandas +re获取pubmed中文献的标题和摘要
  20. 数据分析概述+框架+方法+工具!

热门文章

  1. NP管理器和MT哪个强_NP管理器2.7.6多功能文件管理器 媲美MT/功能更强大
  2. csdn无法离线浏览的最简解决方案
  3. 计算飞狐交易师股票接口表达公式是什么?
  4. 纪念碑谷3的开发支持
  5. 活跃主机发现技术指南
  6. Linux基础命令---mysqladmin数据库管理工具
  7. 小米刷机 MiPhone软件下载
  8. html静态页面作业 出行网站设计——洛阳城旅游(34页) HTML+CSS+JavaScript dreamweaver作业静态HTML网页设计模板 出游
  9. python爬取历史天气数据并保存_Python爬取天气网历史天气数据
  10. CentOS怎么正确安装ag工具