数据结构:计算机如何存储数据的问题。关心的是如何高效的进行数据的读写。
算法:在特定的数据集上(不关心怎么进行具体数据的读写),如何利用数据完成特定的功能。 算法本周上就是一系列运算的先后集合。
1.如何衡量一个算法的好坏
递归的进行斐波那契数列的求解 fibo(n) = fibo(n-1) + fibo(n-2)
public static int fibo(){
//1.base case
if(n <= 2){
return 1;
}
return fibo(n-1) + fibo(n-2);
}
评价一个算法好坏的两种维度:时间效率(时间复杂度)和空间效率(空间复杂度)。
2.算法效率
时间复杂度:主要衡量一个算法的运行速度(不是实际计算机的运行速度,理论值,在所有计算机上通过的描述)
空间复杂度:主要衡量一个算法正常执行所需要的额外空间大小,不是当前数据集本身占用的空间。所谓的额外空间:为了解决这个问题,新开辟的内存大小。
3.时间复杂度
3.1时间复杂度的概念
时间复杂度:不是具体的时间,在计算机领域,算法的时间复杂度是一个数学函数。
算法中的基本操作的执