算法学习日记——什么是算法

————《趣味算法》————

算法是指对特定问题求解步骤的一种描述。算法只是对问题求解方法的一种描述,不依赖于任何语言,可以使用自然语言、程序设计语言(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)

最坏情况对衡量算法的好坏具有实际的意义。

空间复杂度:算法占用空间大小,一般将算法的辅助空间作为衡量空间复杂度的标准。

空间复杂度的本意是指算法在运行过程中占用了多少存储空间,包括:输入/输出数据、算法本身、额外需要的辅助空间

斐波那契数列(兔子数列)

猜你喜欢

转载自blog.csdn.net/z159csdn/article/details/85341128