1.数据:
数据是能输入计算机且能够被计算机处理的各种符号的集合。
(1)是信息的载体
(2)是对客观事物符号化的表示
(3)能被计算机识别,储存和加工
包括:
(1)数值型数据:整数实数等;
(2)非数值型:文字,图像,图行,声音等
2.数据元素:
是数据的基本单位,也称元素,记录,结点或者顶点(比如职工管理信息一个职工的所有信息,姓名职工号性别的集合);
3.数据项:是数据元素的基本组成单位(姓名或者性别等)
4.数据对象:就是性质相同的数据元素的集合(性质相同就是数据元素具有相同数量和类型的数据项)
5.数据结构:是指相互之间存在一种或者多种特定关系的数据元素的集合
数据结构的内容:
(1)数据结构之间的逻辑关系也称逻辑结构(描述数据元素之间的逻辑关系与数据存储无关,独立于计算机)
(2)数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构
(3)数据的运算和实现,对数据元素可以施加操作以及这些操作在相应的存储结构上的实现。

物理结构是逻辑关系的映像与元素本身的映像
逻辑结构是数据元素的抽象,物理结构是数据结构的实现

6.逻辑结构的种类:
第一种归类:
(1)线性结构:有且仅有一个开始和一个终端结点,并且最多有一个直接前驱和后继。
(列如线性表,栈,队列,串)
(2)非线性结构:一个结点可能有多个前驱和后继(树和图)
第二中归类:

7.数据的四种基本存储结构:
(1)顺序存储结构:用一段连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置决定。(C语言数组)
(2)链式存储结构:用任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针表示(C语言链表)
(3)索引存储结构:
(4)散列存储结构:
8.数据类型的作用:
(1)约束变量或者常量的取值范围
(2)约束变量或者常量的操作
9.抽象数据类型(ADT):
抽象:是指抽取出事物具有的普遍性的本质



10.算法时间效率的度量(主要介绍事前分析估测的方法):
首先算法五个基本特性:输入,输出,有穷性,确定性,可行性。
首先算法是一定要有输出的,可以没有输入。有穷指算法在执行有限的步骤后自动结束而不会出现无限循环,并且每个步骤都能在有限的时间内完成。确定性指每一步都有确定含义不会出现二义性。可行性是指算法的每一步都是可行的,每一步都能够通过执行有限次数完成。
算法的设计要求:
正确性,可读性(易懂),健壮性(在输入错误指令时算法能进行相应处理而不是报错或者莫名其妙的结果),高效率和低存储量需求

(1)算法的运行时间T(n)=每条语句的执行次数*该语句执行一次所需要的时间
(2)算法渐进时间复杂度:若有某个辅助函数发T(n)/f(n)的极限值等于不为0的常数,则二者是同数 量级函数记作T(n)=Of(n)称Of(n)为算法渐进时间复杂度(O)是数量级符号,简称时间复杂度
(3)算法的基本语句:执行次数最多的语句。对算法运行时间贡献最大的语句。算法中重复执行次数和算法的执行时间成正比的语句
11.分析算法时间复杂度的基本方法:
那么如何推导O阶
(1)用常数1取代运行时间中所有加法常数
(2)在修改后的运行次数函数中只保留最高阶项,舍去所有低阶项
(3)如果最高阶项存在且不是1,则去除与这个项相乘的常数得到的就是O阶(去除最高项系数)。
例1:

例二:
例三:

有些时候重复的次数会随着问题的不同而不同,比如从数组中查找某一个元素,最快一次就会查找到,最慢就是查不到或者刚好最后一个
一般计算所有情况的平均值,这种时间复杂度的计算方法称为平均时间复杂度,还有是最坏时间复杂度,一般再没说明的情况下都是指最坏情况复杂度
11.各空间复杂度的比较;

12.渐进空间复杂度(重点是时间复杂度问题):
S(n)=Of(n);
算法要占据的空间:
(1)算法本身要占据的空间(输入输出指令变量等)
(2)算法要使用的辅助空间(如果输入数据所占空间只取决于问题本身和算法无关,这样只需要分析该算法的辅助空间相对于输入的数据是不是一个常数,如果是那么称算法为原地工作,空间复杂度为O(1)
下面这个例子:

以上例子,在原有基础地数据外,要用一个辅助t进行交换值(只用到这一个空间),在原数组有n个元素地情况下,空间复杂度为1.但是对于第二种方法则是有一个辅助数组,那么原数组有多少个值,辅助数组也要有多少空间来存储,所以与原数组有多少值有关,在原数组有n个元素地情况下,那么
空间复杂度为n;
13.函数的渐近增长:

数据结构基础概念及算法概念相关推荐

  1. 计算机算法的概念教案,算法概念的教学

    算法初步是必修内容中唯一新增的章节,要教好它,自己先要接受它.喜欢它,在教学中,算法思想的引入则是重中之重,为了提高学生学习算法的积极性,要更多关注算法的"数学味". 在西方很早就 ...

  2. 数据结构基础和排序算法

    数据结构和算法 1. 数据结构 1.1 稀疏数组 这个简单 稀疏数组即二维数组中有大量为0或同一个无效值的时候,将其压缩为只有有效数据的稀疏数组,需要使用时将其读写出来转为二维数组. public c ...

  3. 由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法_算法与数据结构基础 - 二叉树(Binary Tree)...

    二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...

  4. 数据结构基础:P4.2-树(二)--->二叉平衡树

    本系列文章为浙江大学陈越.何钦铭数据结构学习笔记,前面的系列文章链接如下: 数据结构基础:P1-基本概念 数据结构基础:P2.1-线性结构->线性表 数据结构基础:P2.2-线性结构->堆 ...

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

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

  6. 【数据结构基础】线性数据结构——线性表概念 及 数组的封装(C和Java)

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

  7. C语言数据结构-第一讲-数据结构基础概念-电大

    第一讲数据结构基础概念内容简介 数据是表征客观事物的可记录可识别的符号集合.数据是信息处理的核心基础. 本讲主要介绍了与数据结构有关的基本概念术语: l       数据 l       数据元素 l ...

  8. 考研数据结构の基础概念

    考研数据结构の基础概念 第一章 绪论 第二章 线性表 第三章 栈与队列 第四章 串 第五章 矩阵与广义表 第六章 树 第七章 图 第八章 排序 第九章 查找 第一章 绪论 1.数据:是对客观事物的符号 ...

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

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

最新文章

  1. 现在可以插入MSN表情了
  2. tableview插入刷新_iOS中tableview的几种刷新
  3. 浅析网站友情链接交换潜在问题有哪些?
  4. excel合并同类项数据求和
  5. Unity3D:视物有点眩晕的原因
  6. 方法覆盖(方法重写)
  7. 圆角边框(HTML、CSS)
  8. 设计模式(三)结构型模式
  9. python 数据分析与挖局书籍
  10. (java毕业设计)基于java学生宿舍管理系统
  11. sony z及泛泰a870 安装optware记录
  12. 利用python在excel中画图
  13. fig-tlo_PHP-FIG,Quo Vadis?
  14. 微信小程序开发页面无法显示,未注册报错
  15. 【5G NR】CSI-RS
  16. 数据分析之Matplotlib(二)折线图(plot)
  17. 陀螺仪和加速度计MPU6050的单位换算方法
  18. 《单核工作法图解》阅读摘要
  19. Apache Arrow 简介
  20. ubuntu下ecm驱动_cmake fcitx-qt5时报错ECM - SegmentFault 思否

热门文章

  1. jQuery EasyUI combobox多选及赋值、读取、回显
  2. iOS中本地化字符串
  3. 【DevOps】为什么我们永远疲于奔命?
  4. 【OS】期末总结复习
  5. linux deepin ubuntu apt安装openjdk-8-jdk
  6. vscode linux版下载地址
  7. k8s部署dubbo-admin 2.5.10
  8. 在现有k8s集群中安装kubesphere时报错:metrics-server failed
  9. jstack命令案例分析:对wait的线程没有调用notify()导致程序无法停止
  10. 编译执行和解释执行/初识量子计算机