数据结构的复杂度
在介绍复杂度之前我们现分享一个名词叫算法效率。
算法效率:算法效率是指算法执行的时间,算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。
算法效率也分为两种: 一种是时间效率,一种是空间效率,也被称为时间复杂度和空间复杂度。
时间复杂度主要衡量的是一个算法的运行速度。
空间复杂度主要衡量一个算法所需要的额外空间。(随着科学技术的发展现在的空间复杂度已经显得不这么重要了,我们现在一般更注重运行速度)
时间复杂度不计算时间,计算大概的运算次数。
空间复杂度不计算空间,计算大概定义的变量个数。
1.时间复杂度定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间. 一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度.
首先我们来看一段代码:
Func1执行的基本操作次数: F(N) = N^2 + 2*N + 10
实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,那么这里我们使用大O的渐进表示法。
大O符号:是用于描述函数渐进行为的数学