算法的时间复杂度是指算法须要消耗的时间资源
时间复杂度用“O(数量级)”来表示
常见的时间复杂度有:
O(1)常数阶; 问题规模越大效率越高,时间不变, a = [1,2,3] a[0]=1,a增长无影响python
O(log2n)对数阶:问题规模越大效率越高,时间增长慢,算法
O(n):线性阶,时间随数据规模增长,线性增长,时间增长正常 , 例子:for i in range(n)vim
O(n2):平方阶,时间随数据规模增长,指数增长,时间增长快 ,for i in range(n): for j in range(i):........app
n表明问题规模
算法中花费的时间与算法中语句的执行次数成正比ide
一个程序的空间复杂度是指:运行完一个程序所须要内存的大小code
数据交换
三个数排序
a=11, b=9, c=8 临时变量tblog
[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