数据结构绪论篇精要(c++版)

来源:互联网 发布:国际期货模拟软件 编辑:程序博客网 时间:2024/05/08 21:13

一、数据结构的基本概念

1、定义

数据结构是指相互之间存在一定关系的数据元素的集合。

数据是信息的载体,在计算机科学中是指所有能输入到计算机中并能被计算机程序识别和处理的符号集合。

数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一般来说,能独立、完整地描述问题世界的一切实体都是数据元素。           

数据项是指构成元素不可分割的最小单位。

(例如,学生学籍登记表,每个学生的档案就是一个数据元素,而档案中的姓名、学号、出生年月等是数据项。)

2、分类

数据结构可分为逻辑结构存储结构

数据逻辑结构可分为四种:1)集合、2)线性结构、3)结构4)图结构

数据存储结构可分为两种:顺序存储结构(用一种连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。)

二者区别与联系

数据逻辑结构是面向问题的,反映了数据元素之间的关联方式或邻接关系。数据存储结构面向计算机,目标是将数据及逻辑关系存储到计算机的内存中。二者密切相关,一般来说,一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率是不同的。

链接存储结构(用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。)

二、算法及算法分析

1、定义

算法是对特定问题求解步骤的一种描述,是指令的有限序列。

算法五大基本特性:1、输入(有零个或多个输入)2、输出(有一个或多个输出)3、有穷性(对于任何合法输入在执行有限步后结束,且每步在有穷时间内完成)4、确定性(任何条件下,相同输入得到相同结果)5、可行性(算法描述的操作可以通过已经实现的基本操作执行有限次来实现

除五大基本特性外,好的算法还要满足五个特性:1、正确性   2、健壮性   3、简单性    4、抽象分级   5、高效性

算法描述方法:自然语言,流程图,程序设计语言,伪代码

2、分析

1)算法的时间复杂度

是指当问题规模充分大时,算法中基本语句的执行次数在健近意义下的阶,称作算法的渐进时间复杂度,简称时间杂度(用大O标记)

影响算法时间代价的主要因素是问题规模,问题规模是指输入量的多少。(例如,找出100以内的所有素数,100即为问题规模。)所以运行算法所需要的时间T是问题规模的函数。

基本语句是执行次数与整个算法的执行次数成正比的语句,基本语句对算法的贡献最大,是算法中最重要的操作。


2)算法的空间复杂度

是指在算法的执行过程中,需要的辅助空间数量。辅助空间是除算法本身和输入输出数据所占据的空间外,算法临时开辟的存储空间。通常计作:S(n)=O(f(n))  其中,n为问题规模,分析方法预算法的时间复杂度相似。

例如:for(i=1;i<=n;++i)

                ++x;

解:++x基本语句,执行次数为n,时间复杂度为O(n),称为线性阶。


0 0
原创粉丝点击