python-数据结构-DAY1

0.算法的基本特点
0.有0个或多个输入。
1.有1个或多个输出
2.算法执行的步骤具有有穷性
3.每一步执行的语句所表达的含义是确定的
4.算法的设计思想一定是可行的

1.算法的衡量是用时间复杂度"大O表示"
因为每台机器执行的时间总是不同的,但是执行进本运算数量大体相同,为了衡量这个大体相同的概念,我们引入时间复杂度,时间复杂度包括最优时间复杂度,最坏时间复杂度,平均时间复杂度,一般情况最先研究最坏情况复杂度(数据的顺序是无序的)。
顺序结构--------复杂度相加
循环结构--------复杂度相乘
分支结构--------复杂度在分支中最坏的情况
忽略常数项(O(1))

2.常见时间复杂度以及大小比较
常数项 --------O(1)
线性项 --------O(N)
平方项 ---------O(N²)
立方项 ---------O(N³)
对数项 ---------O(logN)
指数项 ---------O(a^N)
NlogN ----------O(NlogN)

在这里插入图片描述

3.timeit衡量python代码的时间复杂度
timeit衡量时间

from timeit import Timer


def t1():
    l1 = []
    for i in range(1000):
        l1.append(i)


text_time1 = Timer("t1", "from __main__ import t1")
print("append_time:{}".format(text_time1.timeit(1000)))



append_time:1.3199999999990997e-05

list常见操作复杂度

4.timeit衡量列表的复杂度
dict操作时间复杂度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值