一、什么是数据结构?
简单的说:
数据结构是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式。
优点:合理的数据结构可以降低程序的复杂性,提高程序的执行效率。
计算机解决具体问题一般经过以下几个步骤:
1)从具体的问题中抽象出一个适当的数学模型;
2)设计一个求解该数学模型的算法;
3)用某种计算机语言编写实现该算法的程序,然后调试——运行直至最终得到问题的答案。
如图:
数据结构、算法和程序之间的关系:程序=数据结构+算法。
二、数据、数据元素和数据项
数据:所有被计算机存储、处理的对象都称之为数据。
数据元素:数据的基本单位,在程序中作为一个整体而加以考虑和处理;数据元素就是我们常称的元素。
数据项:一般数据元素由数据项组成,就是数据库中的字段或域。数据的标识单位,不可分割。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,包括数据的逻辑结构、存储结构、基本运算。
数据的存储结构这里提一下:
数据逻辑结构在计算机中的实现称为数据的存储结构,一个存储结构包含两部分:
1)存数元素
2)元素之间的关联关系
元素之间的关联关系主要有:顺序存储和链式存储。
三、算法
算法好坏的决定因素:
1)正确性
2)易读性
3)健壮性
4)时空性
提到算法肯定会联系到复杂度的问题。
一般我们关注其中两种复杂度即:时间复杂度和空间复杂度。
3.1)时间复杂度
T(n)=O(f(n)) 称为算法的渐进时间复杂度,也就是时间复杂度。
3.2)空间复杂度
什么是空间复杂度?
一个算法的空间复杂度为此算法所耗费的存储空间,
S(n)=O(g(n))
空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在执行期间所需要的存储空间两包括以下三部分:
1)程序所占用的空间
2)输入数据所占空间
3)辅助变量所占空间