数据结构复习
程序员文章站
2024-02-27 14:11:33
...
数据结构第一课上半节O(1)和O(n)
声明:个人学习,复现代码,不存在商业用途,如果涉嫌侵权,请作者联系我。
1.1 时间复杂度
O(1)和O(n)
来源:时间复杂度学习链接
Q2:下面四组代码,哪组代码运行时间最短:
print( 'Hello World')
for i in range(n):
print('Hello World')
for i in range(n):
for j in range(n):
print('Hello World')
for i in range(n):
for j in range(n):
for k in range(n):
print('Hello World')
Q2:用什么方式来体现算法运行的快慢?
计算机领域使用 O 来表示估计,大约
Q2.1:类比生活中的一些事件,估计时间?
* 眨一下眼睛 一瞬间/几毫秒
* 口算’29+68‘ 几秒
* 烧一壶水 几分钟
* 睡一觉 几小时
* 完成一个项目 几天/几星期/几个月
* 飞船从地球飞出太阳系 几年
print( 'Hello World')
==> 该时间复杂度,我们定义成O(1)
for i in range(n):
print('Hello World')
==> 该时间复杂度,我们定义为O(n)
for i in range(n):
for j in range(n):
print('Hello World')
==> 该时间复杂度,我们定义为O(n**2)
for i in range(n):
for j in range(n):
for k in range(n):
print('Hello World')
==> 该时间复杂度,我们定义为O(n**3)
小节练习:
print('Hello World')
print('Hello Python')
print('Hello Algorithm')
'''
上面三个print语句联立输出,时间复杂度是多少:
答案:O(3)
'''
for i in range(n):
print('Hello World')
for j in range(n):
print('Hello World')
'''
上面三个print语句联立输出,时间复杂度是多少:
答案:O(n**2 + n)
'''
'''
上述答案有误,类比:
我们不能说,煲水三个壶要三个几分钟。
我们通常说,同时煲三壶水需要几分钟。
因此,三个print()联立:时间复杂度为 o(1)
你睡一觉多长时间:一般都是大概,或者几个小时,不会给出具体的时分秒
for i in range(n): =>即 一个 O(n)
两个就是 =》 O(n **2)
中间出现的 print() 其实都是0(1)
所以在 O(n)级别上看,0(1)很小。
类比于:煲水几分钟,
睡觉几小时,但是多了少了几分钟,在睡觉这个时间级别来看,啥也不是。
真正答案: o(1) 和 O(n**2)
'''
上一篇: MoveIt教程[1]:Getting Started
下一篇: Getting Started