首页 > 编程语言 >【基础】算法的时间复杂度分析

【基础】算法的时间复杂度分析

时间:2023-02-08 15:38:07浏览次数:40  
标签:分析 10 复杂度 算法 时间 数据量 logn


1、什么是时间复杂度?

  • 首先,解决一个问题肯定有许多种方式可以实现,那么如何评价一个算法的好坏?处理相同的数据量,用时更少,用的空间更少。
  • 那么如何估算一个程序的运行时间与数据量的关系,这个函数就是算法的时间复杂度。时间复杂度可被称为是渐近的,程序指令运算次数。
  • 空间复杂度是算法在运行过程中临时占用存储空间大小的量度。

2、如何计算时间复杂度?

  • 既要知道常见算法的复杂度,也要会分析自己程序的具体复杂度。
  • 常见的有
    O(n):KMP,欧拉筛法
    O(nlogn):线段树
    O(n^2):某些dp
    O(n^3):Floyd
    O(2^n):二进制枚举
    O(n!):枚举排列
  • 自己分析
    树的递归,logn
    一层循环:n
    。。。。。
  • 更多请转维基百科balabala的

2、如何在算法题中运用时间复杂度?

  • 算法竞赛一般给出1s的时间限制和256MB的空间限制。
  • 对于1s的时间,能跑多少数据
    O(logn):很大,longlong以内都行
    O(n):10的7次方,也就是1000万的数据
    O(nlogn):5*10^5,大约50万的数据
    O(n^2):1000-5000左右
    O(n^3):200-500左右
    O(2^n):20-25
    O(n!):12左右
  • 对于256MB的空间,
    一个int,32位,4个字节。256=2^28 = 67,108,864个in
    也就是6*10^7的数据,如果是long long,那么少一半就可以了。


标签:分析,10,复杂度,算法,时间,数据量,logn
From: https://blog.51cto.com/gwj1314/6044443

相关文章

  • golang 内存泄漏分析案例
    1.前言关于内存泄漏的情形已经在之前文章总结过了,本文将讨论如何发现内存泄漏。2.怎么发现内存泄露在Go中发现内存泄露有2种方法,一个是通用的监控工具,另一个是goppro......
  • 认证,权限,频率源码分析\自定义频率类\APIView编写分页\异常处理
    昨日回顾#1认证的使用 -有些接口需要登录后才能访问-原生djagno如何使用的认证:auth的user表,auth自带了认证-自己登录,使用自定义的用户表-认证类的使用......
  • GMAC网卡调试分析
    GMAC网卡调试分析目录GMAC网卡调试分析环境描述MIIMIIRMIIGMIIRGMIISGMIIGMAC网卡信息获取方法获取GMAC网卡信息查看PHY工作接口模式获取PHYIDMAC芯片读写MAC寄存器的方......
  • 算法导论:回溯法
    基本思想将所有的解按照一定结构排列,再进行搜索。一般解空间构造成树状结构,用深度优先搜索策略。针对所给问题,定义问题的解空间。确定易于搜索的解空间结构。以深度优......
  • 算法学习笔记(15): Trie(字典树)
    Trie树Trie(字典树)是一种用于实现字符串检索的多叉树。Trie的每一个节点都可以通过c转移到下一层的一个节点。我们可以看作可以通过某个字符转移到下一个字符串状态,直......
  • 稳定性-1——MTK KE 分析报告获取
    一、相关工具QAAT_20210306.rar//里面有QAATUserGuide.pdfSpOfflineDebugSuite_exe_v3.8.rar工具获取地址:https://online.mediatek.com/tool/download/49a543be-c04......
  • 动态代理-cglib分析
    生成代理类文件的方式jvm添加此启动参数,后面就是代理类class生成的地址-Dcglib.debugLocation=~/baldhead/java/dynamic-proxy-cglib/src/main/java/com/baldhead/dynami......
  • PHY状态机分析
    PHY的12种状态enumphy_state{ PHY_DOWN=0,//关闭网卡 PHY_STARTING,//PHY设备准备好了,PHYdriver尚为准备好 PHY_READY,//PHY设备注册成功 PHY_PENDING,......
  • CANFD 传输速率分析
    https://my.oschina.net/u/2252538/blog/3191024 CAN-FD:英文为CAN with Flexible Data-Rate,翻译为【可变速率的CAN】 BRS(Bit Rate Switch)位速率转换开关......
  • 登录案例需求和分析
    登录案例需求用户登录案例需求:1.编写login.html登录页面username&password两个输入框2.使用Druid数据库连接池技术,操作mysql,day14......