千家信息网

python 算法

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,算法的复杂度算法的时间复杂度是指算法需要消耗的时间资源时间复杂度用"O(数量级)"来表示常见的时间复杂度有:O(1)常数阶; 问题规模越大效率越高,时间不变, a = [1,2,3] a[0]=1,a
千家信息网最后更新 2025年02月08日python 算法
算法的复杂度

算法的时间复杂度是指算法需要消耗的时间资源
时间复杂度用"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/pythondef 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的元素位置

[root@133 ~]# vim key.py   #!/usr/bin/python#encoding:utf8def 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 iif __name__ == '__main__':    key()~                      [root@133 ~]# python key.pyPlease input a num:1Please input a num:2Please input a num:3Please input a num:4Please input a num:506789
0