算法基本概念

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

 

以上是关于算法基本概念的主要内容,如果未能解决你的问题,请参考以下文章

七大排序基本实现——Java

Flask模板宏的概念和基本使用

7种基本排序算法的Java实现

机器学习基本概念解析,机器学习算法概论,机器学习疑难解答,代码分享

机器学习基本概念解析,机器学习算法概论,机器学习疑难解答,代码分享

数据结构与算法图 ( 图的存储形式 | 图的基本概念 | 图的表示方式 | 邻接矩阵 | 邻接表 | 图的创建 | 代码示例 )