一、定义:
算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率 被称作空间复杂度。
二、分类:
1、时间复杂度:
定义:
算法中的基本操作的执行次数,为算法的时间复杂度(一般关注最坏的情况)
表示:
大O的渐进表示法O(f(n))
n:输入数据的规模
f(n):在n数据规模的情况下,基本指令的个数
*只保留最高次项
*最高次项系数化为1
常见的时间复杂度:
O(1) 、 O(log(n)) 、O(n) 、O(n*log(n)) 、 O(n^2)
递归的时间复杂度:画调用栈
2、空间复杂度:
定义:
在n输入规模下,算法需要的(额外的)最大的空间情况
表示:
大O的渐进表示法
常见的空间复杂度:
O(1) 、 O(n)
占用空间:
1、开辟数组
2、调用栈(递归方法)