————《趣味算法》————
算法是指对特定问题求解步骤的一种描述。算法只是对问题求解方法的一种描述,不依赖于任何语言,可以使用自然语言、程序设计语言(Java、C++、C#等)描述,也可以使用流程图、框图。一般是使用伪代码描述算法。
算法的特性
有穷性:算法是由若干条指令组成的有穷序列,总是在执行若干次后结束,不可能永不停止。
确定性:每条语句有确定的含义,无歧义。
可行性:算法在当前环境条件下可以通过有限次运算实现。
输入输出:有零个或多个输入,有一个或多个输出。
好算法的标准:正确性,易读性,健壮性,高效性,低储存性。
时间复杂度:算法运行需要的时间,一般将算法的执行次数作为时间复杂度的度量标准。
O(1)<O(log n)<O(n)<O(n log n)<O(n^2)<O(n^3)<O(2^n)<O(n !)<O(n^n)
最坏情况对衡量算法的好坏具有实际的意义。
空间复杂度:算法占用空间大小,一般将算法的辅助空间作为衡量空间复杂度的标准。
空间复杂度的本意是指算法在运行过程中占用了多少存储空间,包括:输入/输出数据、算法本身、额外需要的辅助空间
斐波那契数列(兔子数列)