第一次尝试

#python是数据结构笔记一


#引入:以一道题来展示


#如果a+b+c = 1000,且a^2+b^2 = c^2(a,b,c为自然数),求a,b,c可能的组合


#解析:
#枚举法
#思路:
#a=0......            
#b=0......      
#c=?......
#先让其中的一个数a去不变,b变化,当b确定一个数的时候c去变化(也就是利用循环嵌套的方式)
#一个个的试,那么就有多钟组合,用计算机设计程序
import time


start_time = time.time()
for a in range(0,1001):#1000次
	for b in range(0,1001):#1000次
		for c in range(0,1001):#1000次
			if a+b+c==1000 and a**2 + b**2 == c**2 :
				print("a, b, c :%d, %d, %d"%(a, b, c))#加上上一步是2次
end_time = time.time() 
print("finished")

T = 1000*1000*1000*2


若将a+b+c = 2000

T = 2000*2000*2000*2


若将a + b  + c  = n(n就是这个问题规模)

时间复杂度 T =  n*n*n*2



对于时间复杂度而言,是与问题的规模n有关的

用函数来表示

T(n) = n^3*2

但是我们在分析的时候是不用关心精确数据的,为了更好的分析,就去掉了旁枝末节

例如T(n) = n^3*2和T(n) = n^3*3是同一个数量级的,所以只看n^3部分就可以了,认为和n^3是同一个变化走势的,称2和3是系数,而系数2或3是不影响变化走势的,所以可以去掉

就把这个T(n)记作大O表示法。其实就是加个大O,变成这样 T(n) = O(n^3)










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值