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/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的元素位置
[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
相关文章