首页 > 编程语言 >数据结构、算法基本概念

数据结构、算法基本概念

时间:2023-02-25 21:57:56浏览次数:28  
标签:存储 元素 算法 数据结构 数据 基本概念 结构

一、数据

数据(Data)是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料,应用程序处理各种各样的数据。
计算机科学中,所谓数据就是计算机加工处理的对象,它可以是数值数据,也可以是非数值数据。数值数据是一些整数、实数或复数,主要用于工程计算、科学计算和商务处理等;
非数值数据包括字符、文字、图形、图像、语音等。

二、数据元素

数据元素(Data Element)是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。
例如,学生信息检索系统中学生信息表中的一个记录、八皇后问题中状态树的一个状态、教学计划编排问题中的一个顶点等,都被称为一个数据元素。
有时,一个数据元素可由若干个数据项(Data Item)组成,例如,学籍管理系统中学生信息表的每一个数据元素就是一个学生记录。它包括学生的学号、姓名、性别、籍贯、出生年月、成绩等数据项。
这些数据项可以分为两种:
一种叫做初等项,如学生的性别、籍贯等,这些数据项是在数据处理时不能再分割的最小单位;
另一种叫做组合项,如学生的成绩,它可以再划分为数学、物理、化学等更小的项。通常,在解决实际应用问题时是把每个学生记录当作一个基本单位进行访问和处理的。

三、数据对象

数据对象(Data Object)或数据元素类(Data Element Class)是具有相同性质的数据元素的集合。
在某个具体问题中,数据元素都具有相同的性质(元素值不一定相等),属于同一数据对象(数据元素类),数据元素是数据元素类的一个实例。例如,在交通咨询系统的交通网中,所有的顶点是一个数据元素类,顶点A 和顶点B 各自代表一个城市,是该数据元素类中的两个实例,其数据元素的值分别为A 和B。

四、数据结构

数据结构研究的三个方面: 
(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; 
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; 
(3)对各种数据结构进行的运算。 
数据结构是指相互有关联的数据元素的集合。 
数据的逻辑结构包含: 
(1)表示数据元素的信息; 
(2)表示各数据元素之间的前后件关系。 
数据的存储结构有顺序、链接、索引等。 
线性结构条件: 
(1)有且只有一个根结点; 
(2)每一个结点最多有一个前件,也最多有一个后件。 
非线性结构:不满足线性结构条件的数据结构。

五、数据的逻辑结构

数据的逻辑结构有以下两大类:
线性结构:有且仅有一个开始结点和一个终端结点,且所有结点都最多只有一个直接前驱和一个直接后继。
线性表是一个典型的线性结构。栈、队列、串、数组等都是线性结构。
非线性结构:在该类结构中至少存在一个数据元素,它具有两个或者两个以上的前驱或后继。
如树和二叉树集合结构和多维数组、广义表、图、堆等数据结构都是非线性结构。

六、基本的数据结构

集合结构:数据元素的有限集合。数据元素之间除了“属于同一个集合”的关系之外没有其他关系。

线性结构:数据元素的有序集合。数据元素之间形成一对一的关系。

树型结构:树是层次数据结构,树中数据元素之间存在一对多的关系。

图状结构:图中数据元素之间的关系是多对多的。

img

七、数据的存储结构

数据的存储结构可采用顺序存储或链式存储的方法。

顺序存储方法是把逻辑上相邻的元素存储在物理位置相邻的存储单元中,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。

链式存储方法对逻辑上相邻的元素不要求其物理位置相邻,元素间的逻辑关系通过附设的指针字段来表示,由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现。

除了通常采用的顺序存储方法和链式存储方法外,有时为了查找的方便还采用索引存储方法和散列存储方法。

八、算法

算法:是指解题方案的准确而完整的描述。 
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: 
(1)可行性; 
(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; 
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; 
(4)拥有足够的情报。 
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 
指令系统:一个计算机系统能执行的所有指令的集合。 
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 
算法的控制结构:顺序结构、选择结构、循环结构。 
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 
算法复杂度:算法时间复杂度和算法空间复杂度。 
算法时间复杂度是指执行算法所需要的计算工作量。 
算法空间复杂度是指执行这个算法所需要的内存空间。 

时间复杂度

  • 定义:设问题的规模为n,把一个算法的时间耗费T(n)称为该算法的时间复杂度,它是问题规模为n的函数。

    常用的算法的时间复杂度的顺序:(比较时只看最高次幂)

    img

for ( i = 1 , i < = 10 , i++ ) x=x+c;         =>O(1)
for ( i = 1 , i < = n , i++ ) x=x+n;          =>O(n)
多嵌套一个for,则为                              =>O(n^2) 以此类推
真题难点:i = 1,while(i < = n)
i = i * 3;=>O(log3^n)
i = i * 2;=>O(log2^n) 以此类推

标签:存储,元素,算法,数据结构,数据,基本概念,结构
From: https://www.cnblogs.com/zggb/p/17155497.html

相关文章