算法基本概念
Posted 骑着赶路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法基本概念相关的知识,希望对你有一定的参考价值。
一 算法复杂度
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
空间复杂度:
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。
二 递归
def foo(x): if x == 1: print(\'foo\') else: foo(x-1) print(x) def bar(x): if x == 1: print(\'bar\') else: print(x) bar(x-1) foo(4) print(\'=\'*20) bar(4)
感受下输出结果
foo 2 3 4 ==================== 4 3 2 bar
不难理解,递归的是foo或bar,但是常规的前面后面的该执行的还是要执行的呀。
用一个盒子模型,就很明了了。
所以,如果想输入xxxxxxxxxhello,worldooooooooo,类似这样的效果,用递归,可以这样写。
def foo(n): if n == 0: print(\'hello,world\',end=\'\') else: print(\'xx\',end=\'\') foo(n-1) print(\'oo\',end=\'\') foo(4)
输出:
xxxxxxxxhello,worldoooooooo
以上是关于算法基本概念的主要内容,如果未能解决你的问题,请参考以下文章
机器学习基本概念解析,机器学习算法概论,机器学习疑难解答,代码分享
机器学习基本概念解析,机器学习算法概论,机器学习疑难解答,代码分享
数据结构与算法图 ( 图的存储形式 | 图的基本概念 | 图的表示方式 | 邻接矩阵 | 邻接表 | 图的创建 | 代码示例 )