为了编写一个“好程序”,必须分析待处理的对象的特征,以及各处理对象之间存在的关系。
计算机解决一个具体问题时,需要经过以下几个步骤:
从具体问题抽象出一个适当的数学模型。
设计一个解此数学模型的算法。
寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学语言加以描述。
例如:求解梁架结构中应力的数学模型为线性方程组;预报人口增长情况的数学模型为微分方程。
编出程序,进行测试、调整直到最终解答。
开发一些文档类管理系统……在这类文档管理的数学模型中,计算机处理的对象之间通常存在着的是一种最简单的线性关系,这类数学模型可称为线性的数据结构。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记做T(n) = O(f(n)).它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度(asymptotic time complexity),简称 时间复杂度。
类似于算法时间的复杂度,把时间换成空间,那么就得到了“空间复杂度”:S(n) = O(f(n)).
一个线性表示n个数据元素的有限序列。
学过mysql的可以理解为,mysql的那个表结构就是线性表。
线性结构的特点
主要内容来自:《数据结构》严蔚敏 吴伟民
脑图链接