python 算法

发布时间:2019-09-01 09:51:22编辑:auto阅读(1459)

    算法的复杂度

    算法的时间复杂度是指算法需要消耗的时间资源
    时间复杂度用“O(数量级)”来表示
    常见的时间复杂度有:
    O(1)常数阶; 问题规模越大效率越高,时间不变, a = [1,2,3] a[0]=1,a增加无影响

    O(log2n)对数阶:问题规模越大效率越高,时间增加慢,

    O(n):线性阶,时间随数据规模增加,线性增加,时间增加正常 , 例子:for i in range(n)

    O(n2):平方阶,时间随数据规模增加,指数增加,时间增加快 ,for i in range(n): for j in range(i):........

    n代表问题规模
    算法中花费的时间与算法中语句的执行次数成正比

    空间复杂度 S(n)

    一个程序的空间复杂度是指:运行完一个程序所需要内存的大小

    数据交换
    三个数排序
    a=11, b=9, c=8 临时变量t

    [root@133 ~]# vim change.py      
    #!/usr/bin/python
    
    def swap(a,b,c):
        if  a > b:
            t = a
            a = b
            b = t
        if  a > c:
            t = a
            a = c
            c = t
        if  b > c:
            t = b
            b = c
            c = t
        print  a,b,c

    if name == 'main':
    swap(11,9,8)

    例子2:list A全部为0,修改部分列表元素为1,手动输入5个元素,打印出元素为0的元素位置
    python 算法

    python 算法

    [root@133 ~]# vim key.py   
    #!/usr/bin/python
    #encoding:utf8
    def key():
        a = []
        for i in  range(10):
            a.append(0)   #a=[0,0,0,0,0,0,0,0,0,0]
        for i in range(5):
            input = int(raw_input("Please input a num:")) #手动输入需要修改为1的列表元素
            a[input] = 1 # a[4]=1
        for i in range(len(a)):
            if a[i] == 0:
                print i
    
    if __name__ == '__main__':
        key()
    ~                      
    
    [root@133 ~]# python key.py
    Please input a num:1
    Please input a num:2
    Please input a num:3
    Please input a num:4
    Please input a num:5
    0
    6
    7
    8
    9

关键字