Java算法基础----数据结构基本概念

来源:互联网 发布:晚睡的影响 知乎 编辑:程序博客网 时间:2024/06/01 09:02

数据和数据元素概念:

数据:是人们利用文字、数字符号以及其他规定的符号对现实世界及其活动所做的抽象描述。

表示一个事物的一组数据称为一个数据元素;构成数据元素的数据称为该数据元素的数据项。

 

数据的逻辑结构:

数据元素之间的相互联系方式称为数据逻辑结构。

按照数据元素之间的相互联系方式,数据的逻辑结构可分为:线性结构、树结构和图结构。

线性结构的一般定义:除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素。

树结构的一般定义:除根节点外,每个数据元素只有一个前驱元素,可有0个或若干个后继元素。

图结构的一般定义:每个数据元素可有0个或多个前驱数据元素和0个或若干个后继数据元素。

 

数据的存储结构

数据元素在计算机的存储方式称为数据的存储结构

数据存储结构的基本形式有两种:一种是顺序存储结构,另一种是链式存储结构

顺序存储结构:是把数据元素存储在一块连续地址空间的内存中,程序的设计方法是数组。顺序存储结构的特点:逻辑上相邻的数据元素在物理上也相邻,数据间的逻辑关系表现在数据元素的存储位置关系上。

什么是指针?什么是结点?

指针是指向一个内存单元的地址。

结点是由一个数据元素和一个指针构成。

链式存储结构:是用指针把相互直接关联的结点(即直接前驱结点或后直接后继结点)链接起来。链式存储结构的特点:逻辑上相邻的数据元素在物理上(即内存存储位置上)不一定相邻,数据间的逻辑关系表现在结点的链接关系上。

 

算法和算法的时间复杂度

算法是描述求解问题方法的操作步骤集合

描述算法的语言主要有三种形式:文字形式、伪代码形式和程序设计语言形式

文字形式:是用中文或英文这样的文字描述算法

伪代码形式:是用一种仿程序设计语言的语言(因为这样的描述语言不是真正的程序设计语言,所以称做伪代码)

程序设计语言形式:程序设计语言形式是用某种程序设计语言来描述算法。

 

算法五大性质:输入性、输出性、有限性、确定性和可执行性。

算法的设计目标:正确性、可读性、健壮性、高时间效率和高空间效率。

 

算法的时间复杂度分析

算法的时间效率度量方法

1、事后统计方法:程序设计中很少使用该种评估方法,暂不介绍

2、事情分析方法:用数学方法直接对算法的时间效率进行分析(因为这种分析方法是在计算机实际运行该算法之前进行的,所以称为事情分析法)

      事情分析方法主要分析算法的时间效率与算法处理的数据元素个数(n)的函数关系。