数据结构/算法(python描述)笔记

基础内容

for a in range(0,1001)
#a只会取0~1000
a**2
#a的平方
import time
start_time=time.time()
end_time=time.time()
#使用time模块获得运行时间差(不是非常精确)
print("a,b,c:&d %d %d" %(a,b,c))
#打印

时间复杂度

计算规则
在这里插入图片描述
常见时间复杂度
在这里插入图片描述
在这里插入图片描述
timeit模块
用来测试一段代码执行速度
在这里插入图片描述

# coding:utf-8
import timeit
def test1():
	li=[]
	for i in range(10000):
		li.append(i)#列表尾添加
def test2()
	li=[]
	for i in range(10000):
		li=li+[i]#新建了一个新列表,加入[]与[i],并让li指向这个新列表
def test3()
	li=[i for i in range(10000)]#列表生成器
def test4()
	li=list(range(10000))#将可迭代对象转换成列表(python3)
def test5()
	li=[]
	for i in range(10000):
		li.extend([i])#将列表里所有元素追加进li
def test6():
	li=[]
	for i in range(10000):
		li.insert(0,i,)#从列表头追加,比append慢,和存储结构有关
timer1=Timer("test1()","from __main__ import test")#为了能够在别的地方运行,需要让运行环境中包含test1。作为启动文件,导入模块时用__main__代替文件名。
print("append:",timer1.timeit(1000))
timer2=Timer("test2()","from __main__ import test")
print("+:",timer2.timeit(1000))
timer3=Timer("test3()","from __main__ import test")
print("列表生成器:",timer3.timeit(1000))
timer4=Timer("test4()","from __main__ import test")
print("list(range(10000)):",timer4.timeit(1000))
timer5=Timer("test5()","from __main__ import test")
print("extend:",timer5.timeit(1000))
timer6=Timer("test6()","from __main__ import test")
print("extend:",timer6.timeit(1000))
#所需执行时间不一样

在python中,list+=[i]比list=list+[i]运行效率高
函数调用语句不能算基本步骤

list内置操作的时间复杂度

在这里插入图片描述

dict内置操作的时间复杂度

在这里插入图片描述

数据结构

算法是为了解决实际问题而设计的,数据结构是算法需要处理问题的载体,数据结构只是静态地描述了数据元素之间的关系,对基本数据类型的封装

抽象数据类型(Abstract Data Type)

数据类型+操作

发布了51 篇原创文章 · 获赞 5 · 访问量 408

猜你喜欢

转载自blog.csdn.net/qq_42078231/article/details/102822571