数据结构与算法-算法

算法概念

程序=数据结构+算法--->数据结构描述,算法处理解决问题

算法是对待定问题求解步骤的一种描述

特性:

有穷性、确定性、可行性【0输入1输出】

好的算法特质

正确性、可读性【有注释】、健壮性【出现非法数据】、高效率与低存储量需求【时间复杂度低,空间复杂度低】

算法时间复杂度

代码-算法一:逐步递增型爱你3000遍 

        Q1:当问题规模n足够大时,是否可以忽略表达式某些部分?

                        T1(n)= 3n+3 ≈3n/n    ……可以只考虑阶数高部分

O表示同阶,同等数量级==当n趋于无穷大时,二者比为常数O(n)

加法规则

  •         --只保留最高阶一项并系数为1   
  • 算法时间复杂度越大,程序越差
  • 口诀::常对幂指阶--->
  • 忘记上面可以用洛必达法则将两个函数以极限的方式相除n->无穷,为0则下面的大

乘法规则

  •         --都保留:O(nlog^2n)       

              Q2:如果代码很多行,不能一行一行数,应该怎么办?

  1. 顺序执行的代码只会影响常数项,忽略
  2. 只看循环中的一个基本操作分析它执行次数与n关系
  3. 若有多层循环嵌套,只关注最深层循环循环了几次
  4. 循环次数的数量级就是算法时间复杂度,看i++/++i判断是否要+1-->也无所谓
  • 算法1递增型中   T(n) = 3n+1003=O(n)---->是3n与n同阶
  • 算法2嵌套循环型  T(n)= O(n)+O(n^2) = O(n^2)
代码:算法2--嵌套循环型爱你

三种复杂度【查找数据的话根据输入数据不同判断】

  • 最坏时间复杂度
  • 平均时间复杂度
  • 最好时间复杂度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值