为什么for循环嵌套顺序会影响性能?

import datetime
start2 = datetime.datetime.now()

count2 = 0
for i in range(100):
	for j in range(1000000):
		count2 += 1
end2 = datetime.datetime.now()

print(end2 - start2)

0:00:14.588081
start1 = datetime.datetime.now()

count1 = 0
for i in range(1000000):
	for j in range(100):
		count1 += 1
end1 = datetime.datetime.now()

print(end1 - start1)

原因一

对于第一种,判断 i <100,循环100次; 判断 j < 1000000,循环100*1000000次,判断次数一共为:100 + 100 * 1000000 = 1000000100 次

对于第二种,判断 i < 1000000, 循环1000000次,判断 j < 100,循环1000000*100次,判断次数一共为:1000000 + 1000000 * 100 = 101000000次

原因二

第一个循环的 i 的初始化次数是 100 次,j 的初始化次数是1000000 * 100次,一共100 + 100 * 1000000 = 1000000100 次。

第二个循环的 i 的初始化次数是 1000000 次,j 的初始化次数是 100 次,一共1000000 + 1000000 * 100 = 101000000次。

问题:是判断还是初始化呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值