关于《大话数据结构》的学习笔记---绪论篇(数据结构)

                                 程序设计 = 数据结构 + 算法

1、数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合。

     数据是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

     数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称作记录。

     数据项:数据有多个或者一个数据项组成,数据项是数据不可分割的最小的单位。

     数据对象:是性质相同的数据元素的集合,是数据的子集。

 

2、按照视点的不同,我们把数据结构分为逻辑结构和物理结构。 

逻辑结构:是指数据对象中数据元素之间的相互关系。

数据结构中的逻辑结构,主要有以下逻辑结构,主要有四种:

1、集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他任何关系。类似与数学中的集合。如下图就是一个集合:

 

 

 

2、线性结构:线性结构中的数据元素是一对一的关系。如下图:

 

 

 3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。如下图:

 

 

 4、图形结构:图形结构的数据元素是多对多的关系。如下图:

 

 

 

物理结构:是指数据的逻辑结构在计算机中的存储形式。

    数据元素的存储形式有两种:顺序存储和链式存储。

   顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的物理关系和逻辑关系是一致的。

  

 

 

   链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

 

 

 

 

3、常见的数据结构

 

4、算法:算法就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

算法有五个基本特性:输入、输出、有穷性、确定性、可行性。

1、算法有零个或者多个输入,不限制。

2、算法必须有输出,一个或者多个,以打印或者返回的形式输出。

3、有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环(死循环),并且每一个步骤在可接受的时间内完成。

4、确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。

5、可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

5、程序的正确性、可读性、健壮性、时间效率低(时间复杂度低)、占用存储空间少(空间复杂度低)

6、算法效率的度量方法

 6.1、事后统计法:通过运行程序进行统计

 6.2、事前分析估算方法:在计算机程序编译前、运行前,依据统计方法对算法进行估算。

        一个高级程序语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:

        1、算法采用的策略、方法

        2、编译产生的代码质量

        3、问题的输入规模

        4、机器执行指令的速度。

7、复杂度分析

  复杂度分析详见:

             本人博文:https://www.cnblogs.com/controller666/p/12153095.html 、https://www.cnblogs.com/controller666/articles/12153435.html

 

posted @ 2019-10-18 17:49  Gentleman-cx  阅读(128)  评论(0)    收藏  举报