算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

一、算法时间复杂度的应用

在实际应用中,会根据要解决的问题写出几个相应的解决办法,但是我们要选择执行效率最高的算法,那么怎样评估算法的效率呢,这时候就要用到算法时间复杂度了

二、如何计算算法的时间复杂度

步骤:

  1. 计算代码的时间频度
    时间频度T(n): 代码的运行次数
  2. 将时间频度,化简为时间复杂度
    代码运行次数的数量级别—时间复杂度
  3. 计算:
    时间复杂度 = 时间频度 (去掉:1.常数项 2.低阶 3.最高次阶的系数 )只保留最高次阶

举例说明

T(n)=3n²+6n+5

  1. 去掉常数项
    T(n)=3n²+6n
  2. 去掉低阶
    T(n)=3n²
  3. 去掉最高次阶的系数
    T(n)=n²

因此:T(n)=n² =>O(n²)

三、常用的时间复杂度

在这里插入图片描述

当n增大时,函数从小到大排序

时间复杂度排序

在这里插入图片描述

四、代码说明

#coding=utf-8

#定义函数,array数组,order排序
def select_order(array,order):
    se = len(array)
    for i in range(0, se):
        j = i
        k = i+1
        while(k<se):
            if((array[j]>array[k]) and (int(order)>0)) or ((array[j]<array[k]) and (int(order)<0)):
                j = k
            k += 1
        array[i], array[j] = array[j], array[i]
        i += 1
    return array

paopao = [3, 55, 66, 2, 38]
#order>0升序,order<0降序
print(select_order(paopao, 1))
print(select_order(paopao, -1))

以上是一个选择排序,从上常用的时间复杂度表中,很容易知道,此代码有两个循环:for i in range(0, se)while(k<se) 因此,此循环的时间复杂度为O(n的2次方)

如果还是没有理解请留言,哈哈哈一起来解决哈哈哈在这里插入图片描述

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值