1.数据结构的整体框架图
数据结构分为三个部分开始学习,数据结构的基本概念、基本数据结构和基本的数据处理技术。
2. 数据结构的基本概念
1.基本概念和术语
数据: 信息的载体,描述客观事物属性的数、字符及能输入到计算机中并被计算机程序识别和处理的符号的集合。
数据元素:是数据的基本单位,数据元素是有一个或多个数据项组成的,数据项是构成数据元素的不可分割的最小单位。例如:学生就是一个数据元素,它由学号、姓名、性别等数据项构成。
数据对象:数据对象是具有相同性质的数据元素的集合。例如:整数对象是集合N{0,1,2,-1,-2……}
数据类型:
1)原子类型:不可再分的数据类型
2)结构类型:可以再分解成若干成分的数据类型
3)抽象数据类型:抽象数据组织及与之相关的操作
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。包括三方面的内容:逻辑结构、存储结构和数据的的运算。
其关系可以简单得概述为下图:
2.数据结构三要素
数据的逻辑结构:值数据元素之间的逻辑关系,与数据的储存无关,是独立于计算机的。
数据的存储结构:数据结构在计算机中的表示。
数据的运算:数据的的运算包括运算的定义和实现。定义时针对逻辑结构的,指出运算的功能;实现是针对存储结构的,指出运算的具体操作步骤。
3.算法与算法的评估
算法:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
算法效率来评估算法的好坏
时间复杂度:一个语句的频度是指该语句在算法中被执行的重复次数。如果所有语句的频度之和记为T(n),时间复杂度主要分析T(n)的数量级。取f(n)为T(n)中子项随着n增长最快的项,将其系数置为1作为时间复杂度的度量,因此时间复杂度可记为:(O的含义是T(n)的数量级)
T(n) = O(f(n))
空间复杂度:算法空间复杂度S(n)定义为该算法所耗费的存储空间,为n的函数,记为:
S(n) = O(g(n))
时间复杂度实例:
加法规则
两个长度分别为m和n的升序链表,若将他们合并为长度为m+n的一个降序链表,则最坏情况下的时间复杂度;
最坏的情况下就是一个m一个n全部都要进行重新排序,则最长就是 T(max(m,n)) = O(max(m,n));
乘法规则
count = 0;
for(k = 1;k<=n;k*2)
{
for(j = 1;j<=n;j++)
{
count++;
}
}