前言

数据结构与算法是计算机学习的一个重要方面,对数据结构与算法进行研究可以提升自己的问题解决能力,优化程序性能,并且更加深入的理解计算机系统。

数据结构

对一个数据结构进行研究主要有以下三个方面:

  • 逻辑结构
  • 数据运算
  • 物理结构(存储结构)

算法

对一个算法进行研究有以下几个方面:

  • 时间复杂度
  • 空间复杂度

对于复杂度的表示一般使用大 O 表示法,n 为数据规模,比如:

$T(n) = 520 = O (1) $
$T(n) = n + 520 = O(n)$
$T(n) = n^2 + 4n + 5 = O(n^2)$
$T(n) = nlog_2n + n + 99999 = O(nlogn)$
$T(n) = n^3 + n^2 = O(n^3)$
$T(n) = O(n^3 + n^2) = O(n^3)$

所以,使用大 O 表示法可以让我们忽略那些低阶的因子,把精力放在那些高阶的因子上,毕竟当 n 的规模足够大时,影响运行效率的往往是那些高阶的因子。

对于复杂度的比较遵循以下原则:

$O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)$

相关文章