• 算法基本概念


    一 算法复杂度

    同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度空间复杂度来考虑。

    空间复杂度:

    空间复杂度(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
  • 相关阅读:
    hbase与Hive的集成
    HBase API操作
    HBase原理
    HBase数据结构
    HBase Shell操作
    HBase简介
    Boxes in a Line
    B
    B. Painting Pebbles
    X
  • 原文地址:https://www.cnblogs.com/654321cc/p/8394521.html
Copyright © 2020-2023  润新知