python数据结构_大O符号_学习笔记(1)

1.概念

:大O符号是用来表达一个算法的复杂程度的,是一个数量级

2.代码

a = 1
b = 2
c = 3
for i in range(n):
	for j in range(n):
		x = i*i
		y = j*j
		z = i*j

for k in range(n):
	m = a*k + 5
	v = k*k

d = 100*c
e = c*d

3.分析

在上述代码中,分配操作数分为四个操作数的总和。第一项是3,即前面三个赋值语句;第二项是3n^2,两个嵌套循环,并且内层循环中有三个式子;第三项是2n,一个循环;第四个是2,两个赋值语句。
因此分配操作数T(n)=3+3n^2 + 2n + 2 = 3n^ 2+2n+5,当n变化到非常大时,其他项可以忽略不计,即O(n)=n^2

figure1 各操作数的指数增长趋势

4.其它

1)python排序函数是需要成本的,即一般排序sort函数的复杂度是O(n^2)或者O(nlogn)

2)复杂度的计算,一般是根据是否有嵌套和每一个循环的步长以及循环前后的赋值语句来进行分配操作数的计算的,然后假设n无穷大时,看看哪一项对分配操作数的影响最大,一般是取高次项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值