您的位置:首页 > 理论基础 > 数据结构算法

数据结构和算法导论

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所以底数的大小无所谓

平方阶:保留最高阶

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: