数据结构和算法导论
2015-09-24 13:32
267 查看
一、数据结构基本概念和术语
数据:数据是对客观事物的符号表示。在计算机科学中其含义是指所有能够输入到计算机中并被计算机程序处理的符号集合。数值,声音,图像等都是数据。数据元素:数据元素是数据集合中的一个实体,是计算机程序中加工处理的基本单位。人类的数据元素就是一个人。
数据项:一个数据元素可以由若干个数据项组成。比如人这样的数据元素,可以由眼、耳、口、鼻等数据项组成。
数据对象:是具有相同性质的数据元素的集合,是数据的子集。例如在一个交通网中,所有的顶点是一个数据对象,顶点A和顶点B是数据对象的一个实例。
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:指数据元素之间的逻辑关系。逻辑结构分为以下四种:集合结构、线性结构、树形结构、图形结构。
存储结构(物理结构):是指数据的逻辑结构在计算机中的存储形式。分为顺序存储和链式存储。
抽象数据类型(Abstract Data Type 简称ADT):是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本操作集。ADT的定义为:ADT 抽象数据类型名:{数据对象:(数据元素集合),数据关系:(数据关系二元组结合),基本操作:(操作函数的罗列)};
二、算法
1.算法定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
2.算法的特性
算法具有五个基本特征:输入、输出、有穷性、确定性、可行性。
算法具有零个或多个输入,至少有一个或多个输出。
3.算法的时间复杂度
常数阶时间复杂度为O(1)
线性阶时间复杂度为O(n)
对数阶:
int count = 1; while (count < n) { count = count * 2; }
这段代码的时间复杂度就是看有多少个2相乘后会大于n,由2^x=n得到x=log2n,时间复杂度为O(logn)
log3n=log2n/log23 log3n和log2n只差一个常数log23所以底数的大小无所谓
平方阶:保留最高阶
相关文章推荐
- 数据结构与算法分析(c++版) #10 顺序队列
- 数据结构与算法分析(c++版) #9 队列
- java 数据结构
- [是用数据结构]UVa1471 - Defense Lines
- Java数据结构与算法
- C语言数据结构之单链表的拆分
- C语言数据结构之一元多项式的求导
- C语言数据结构之求两个集合的交集(链表)
- 基础数据结构--双向链表的实现
- java数据结构
- 河南理工大学14级数据结构第一次上机实验课题试验
- 数据结构与算法面试题80道
- 关于栈的操作
- 数据结构与算法分析(c++版) #8 顺序栈和链式栈
- 【链表项目2 - 建设“单链表”算法库】
- LEETCODE-Remove Linked List Elements
- 数据结构与算法分析(c++版) #7 栈
- 第四周项目三数据结构实践(三)——单链表:递增判断
- 第四周项目三 数据结构实践(二)——单链表:连接
- PHP 数据结构