时间复杂度
1、假设计算机执行每个基本操作的时间是固定的时间单位,那么有多少基本操作步骤就代表有多少时间单位。虽然不同机器的时间单位不同,但是执行基本操作是相同的,因此可以使用步骤来客观描述代码的时间复杂度。
2、时间复杂度用大(O)记法表示。
3、T(n) = n^2 x 2, 关注趋势图的话可省略 x 2,
所以下面这个函数的时间复杂度可用g(n) = n^2表示
g(n) 和T(n) 相差 x2 的操作,g(n)是T(n)的渐近函数,记为f(n) = O(g(n)),即趋向无穷极限时,函数的增长速度受到g(n)的约束。
def a(n):
# 操作步骤=n
for i in range(n):
# 操作步骤=n
for j in range(n):
# 操作步骤=1步(i**2)+1步(j**3)+1步(i**2+j**3)+ 1步(c = i**2+j**3),
#基本操作对趋势图影响不大,所以可以简单的看成是1步
c = i**2+j**3
# 操作步骤=1步
print(c)
4、大(O)记法表示法用g(n)表示
算法
算法是一种思想,一种解决问题的思路,关注的是解决问题的步骤和思想,不关注处理的数据类型。
数据结构
1、数据的保存方式叫作数据结构
2、数据结构用于描述数据元素之间的关系,数据的组织方法会影响算法的时间复杂度,高效的程序需要在数据结构的基础上设计与选择算法。
程序 = 数据结构+算法
#保存一个班级学生的信息
#方法1:
list1 = [
("张三","男"),
("李四","女")
]
# 查找张三,时间复杂度是O(n)
for i in list1:
if i[0] == '张三':
break
#方法2:
map1 = {
"张三":{"性别":"男"},
"李四":{"性别":"女"}
}
#查找张三,时间复杂度是O(1)
map1["张三"]
3、数据基本类型如int ,float,char等,这些基本数据之间存在关系便是数据结构。python内置的数据结构有列表、字典、元组等。python没有定义,需要我们扩展的数据结构称之为python扩展数据结构,如栈、队列等。
来源:CSDN
作者:晴天love梦溪
链接:https://blog.csdn.net/qq_17200461/article/details/104646319