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)算法的效率
有效地使用计算资源满足需求
何为“用时短”的算法?
比如你这个算法是在超级计算机中运行的还是在普通计算机中运行的,这样不能叫用时短
所以:
用基本运算的次数度量算法的时间复杂度
(6)算法的时间复杂度
原理:在一个算法中,进行基本运算的次数越少,其运行时间也就相对地越少;基本运算次数越多,,其运行时间也就相对地越多。
定义:把算法中包含基本运算次数的多少称为算法的时间复杂度,也就是说,一个算法的时间复杂度是指该算法的基本运算次数。
度量:算法中基本运算次数T(n)是问题规模n的某个函数f(n),记作:T(n)=O(f(n))
“大O”
比如:T(n)=5n2-2n+10000=O(n2)
(7)复杂度的量级
O(1)