1.1数据结构——绪论

一、数据结构的基本概念

传统上,我们把数据结构分为逻辑结构和物理结构:

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

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

四大逻辑结构:集合、线性结构、树形结构、图状结构或网状结构。

四大物理存储结构:顺序存储、链式存储、索引存储、散列存储。


二、算法和算法评价

2.1 算法的基本概念

算法是对特定问题求解步骤的一种描述

算法的五个基本特征:

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

确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。相同的输入只能有唯一的输出结果。

可行性:算法的每一步都必须是可行的。

输入:算法具有零个或多个输入。

输出:算法至少有一个或多个输出。

2.2 算法效率的度量

算法效率的度量是通过时间复杂度空间复杂度来描述的。

时间复杂度是指执行算法所需要的计算工作量,记为问题规模n的函数T(n)。

一般考虑在最坏情况下的时间复杂度,以保证算法的运行时间不会比它更长。

时间复杂性的计算规则

a) 加法规则

T(n) = T1(n) + T2(n) = O( f(n) ) + O( g(n) ) = O( max( f(n), g(n) ) )

b) 乘法规则

T(n) = T1(n) x T2(n) = O( f(n) ) x O( g(n) ) = O( f(n) x g(n) )

常见的渐进时间复杂度有:

空间复杂度是指执行这个算法所需要的内存空间,记为S(n)。

辅助空间一般指除输入和程序指令之外,为实现计算所需信息的额外空间。

算法原地工作是指算法所需的辅助空间常量,即O(1)。

你可能感兴趣的:(1.1数据结构——绪论)