数据结构与算法分析之01绪论

来源:互联网 发布:用友nc外部数据平台 编辑:程序博客网 时间:2024/05/27 09:48
01绪论

专业术语:   
数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。
数据元素:数据的基本单位,在计算机程序中通    常作为一个整体进行考虑和处理。
数据项:有独立含义的数据最小单位,也称域。
数据类型:是一个值的集合和定义在此集合上一组操作的总称。
抽象数据类型:ADT,指一个数学模型以及定义在该模型上的一组操作。通常用数据对象、数据关系、基本操作集这样的三元组来表示。有数据抽象和数据封装两个重要特性。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。包括(逻辑结构、存储结构和数据的运算)。
数据的逻辑结构:指数据元素之间的逻辑关系。包括集合、线性结构、树形结构、图状结构或网状结构。
数据的存储结构:指数据结构在计算机中的表示,也成物理结构。主要有顺序存储、连接存储、索引存储、散列存储。
算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。有5个重要特性(有穷性、确定性、可行性、输入、输出)
算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求。
时间复杂度:一般情况下,算法中基本操作的重复次数是问题规模n的某个函数f(n),算法的时间度量记作T(n)=O(f(n)),表示随着问题规模n的增大,算法执行时间增长率和f(n)的增长率相同,称为时间复杂度。
空间复杂度:S(n)定义为该算法所耗费的存储空间,是问题规模n的函数。

数据结构的两个层次
一、逻辑结构
集合——数据元素间除“同属于一个集合”外,无其它关系
 线性结构——一个对一个,如线性表、栈、队列
 
树形结构——一个对多个,如树
 图形结构——多个对多个,如图
 二、存储结构
顺序存储结构——借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系
链式存储结构——借助指示元素存储地址的指针表示数据 元素间的逻辑关系

 数据类型
定义:在一种程序设计语言中,变量所具有的数据种类 

C语言:
 基本数据类型: char  int  float  double  void
抽象数据类型
更高层次的数据抽象

由用户定义,用以表示应用问题的数据模型

由基本的数据类型组成, 并包括一组相关的操作
抽象数据类型
抽象数据类型可以用以下的三元组来表示:
                ADT = (D,S,P)

                数据对象   D上的关系集    D上的操作集
 算法:
 算法的特性:  
 输入:有0个或多个输入
 输出:有一个或多个输出(处理结果)
 确定性:每步定义都是确切、无歧义的
 有穷性:算法应在执行有穷步后结束
 可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行
 算法分析:时间复杂度算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n)=O(f(n))

表示随着n的增大,算法执行的时间的增长率和f(n)的增长率相同,称渐近时间复杂度。
分析算法时间复杂度的基本方法:
找出语句频度最大的那条语句作为基本语句
计算基本语句的频度得到问题规模n的某个函数f(n)
取其数量级用符号“O”表示
时间复杂度是由嵌套最深层语句的频度决定的

 
0 0
原创粉丝点击