1. 数据结构怎么理解?
【从概念定义上】 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构。
【从组成内容上】 数据结构包括三方面内容:逻辑结构、存储结构、数据的运算。
学习某一种数据结构的时候,应该先关注它的逻辑结构,应该实现什么样的运算;
最后在确定存储结构之后,再具体的用代码来实现该运算。一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构(物理结构)。
2. 逻辑结构和存储结构的理解
逻辑结构是指数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关,独立于计算机。
存储结构是数据结构在计算机中的表示(又称映像),也称为物理结构。包括数据元素的表示和关系的表示。
数据的存储结构是用计算机语言实现的逻辑结构,依赖于计算机语言。
换句话来说:在存储数据的时候,不仅要存储各数据元素的值,而且要存储数据元素之间的关系。
(比如:数据的操作方法、数据元素的类型、数据的存取方法)
数据采用了何种方式存储,也就决定了如何实现对应的基本操作(增删改查)。
3. 算法这个概念怎么理解?
【从概念定义上】算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
【从算法特性上】有穷(步骤有穷、每一步操作时间有穷)、 确定(指令有确切含义,同一输入,相同输出)
可行(描述的操作可通过已经实现的基本操作执行有限次实现)、 输入、 输出。
【好算法目标】 正确性、可读性、健壮性、效率与低存储量需求。
4. 算法效率衡量标准
时间复杂度(执行速度快不快)+空间复杂度(费不费内存)
时间复杂度:最深层循环内语句执行次数。
注: 算法时间复杂度不仅依赖于问题的规模 n ,也取决于待输入数据的性质(输入数据元素初始状态)。
这主要取决于循环跳出的条件是否和输入数据元素有关。