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,那么少一半就可以了。

【基础】算法的时间复杂度分析相关推荐

  1. 芯片测试算法及时间复杂度分析

    一.蛮力算法与分治算法 #include <stdio.h> #include <math.h> #define OVERFLOW -2 #define OK 1 #defin ...

  2. 字符串匹配KMP算法及其时间复杂度分析

       字符串匹配算法是非常常见的算法.考虑长度为nnn的文本(text)字符串A[1,2,⋯,n]A[1,2,\cdots,n]A[1,2,⋯,n],长度为mmm的匹配(pattern)字符串B[1, ...

  3. 算法的时间复杂度分析

    算法的时间复杂度是一个函数,它定性描述该算法的运行时间.这是一个代表算法输入值的字符串的长度的函数.时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数.使用这种方式时,时间复杂度可被称为是渐 ...

  4. 算法的时间复杂度分析之O(logn)、O(nlogn)

    复杂度分析之O(logn).O(nlogn) 对数阶时间复杂度非常常见,同时也是最难分析的一种时间复杂度.我通过一个例子来说明一下. int i = 1;while (i <= n) {i = ...

  5. 基础算法-2: 时间复杂度为O(N*logN)的排序算法

    时间复杂度 O(N*logN): 归并排序,堆排序(大根堆,小根堆,heapInsert/heapify),快速排序(荷兰国旗问题). 归并排序 L - Mid - R 先让 左有序,右有序. 归并 ...

  6. DQN算法的时间复杂度分析

    DQN算法的算法流程如下: 时间复杂度: 设: Initialize replay memory D \mathcal{D} D to capacity N N N (运行消耗 t 0 t_0 t0​ ...

  7. 算法学习——时间复杂度分析与渐进符号

    时间复杂度 时间复杂度:算法执行运算的操作数丢掉低阶数,再去掉所有系数. 例如 a = 1#操作数1 b = 2#操作数1 c = 3#操作数1 for i in n:#操作数nprint(a,b,c ...

  8. java快速排序的时间复杂度_程序猿必备排序算法及其时间复杂度分析

    常用的时间复杂度 常数阶\(O(1)\) 说明: 只要代码中没有复杂的循环条件,无论代码的函数是多少,一律为常数阶\(O(1)\) int i=1; int j=3; int m=0; m=i+j; ...

  9. 算法设计与分析基础知识

    一.算法设计基础 算法是(algorithm)是对特定问题求解步骤的一种描述,是指令的有限序列. 算法的五个特性: 输入:一个算法可以有零个或多个输入. 输出:一个算法有一个输出或多个输出. 有穷性( ...

最新文章

  1. “天河二号”总工程师杜云飞谈星光超算应用平台设计
  2. ConnectivityManager详解
  3. Premiere Pro CS5软件安装教程
  4. postman关闭ssl验证_【第5期】springboot:苹果内购服务端验证
  5. 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
  6. Veritas Storage Foundation 5.0 HA for Windows
  7. leetcode520. py解字符串真是太残暴了
  8. 乘法逆元(洛谷-P3811)
  9. 洛谷 P3372 【模板】线段树 1
  10. mac下nvm_2021 搞个 Mac 玩玩吧!
  11. HAOI2008 移动玩具
  12. WINDOWS XP 桌面主题的安装制作
  13. SCI论文全攻略之构思与撰文(二)
  14. 基于广度优先搜索的六度空间理论的验证
  15. 深信服 SANGFOR 设备密码恢复和配置备份恢复
  16. 51jiqiren小语种语音机器人
  17. asp.net中runat=server的含义
  18. 入门3D游戏建模,是选择角色建模还是场景建模,看完你来选
  19. 7代服务器cpu型号,七代酷睿都有哪些型号?_笔记本新闻-中关村在线
  20. ios android md5加密,iOS中使用MD5加密

热门文章

  1. Python typing —— 类型提示(type hint)
  2. 同余定理在算法求解中的应用
  3. VS2013 MFC 直接将 OpenCV2.0/3.0 库中的 Mat 结构的图像传递到 Picture Control(图片控件)
  4. Python 数据结构与算法——从二分图到寻找最大排列(Maximum Permutation)
  5. python中的运算符重载_Python中的操作符重载
  6. 用python画圣诞树-python圣诞树
  7. python发音模块-python声音模块
  8. python编程入门-最好的Python入门教材是哪本?
  9. 学python有前途吗-入门学习Python编程有前途吗?
  10. 自学python能找到工作吗-自学Python好找工作吗?