数据结构和算法-知识点总结

回眸只為那壹抹淺笑 提交于 2020-03-04 10:01:20

时间复杂度

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扩展数据结构,如栈、队列等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!