【基础】算法的时间复杂度分析
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,那么少一半就可以了。
【基础】算法的时间复杂度分析相关推荐
- 芯片测试算法及时间复杂度分析
一.蛮力算法与分治算法 #include <stdio.h> #include <math.h> #define OVERFLOW -2 #define OK 1 #defin ...
- 字符串匹配KMP算法及其时间复杂度分析
字符串匹配算法是非常常见的算法.考虑长度为nnn的文本(text)字符串A[1,2,⋯,n]A[1,2,\cdots,n]A[1,2,⋯,n],长度为mmm的匹配(pattern)字符串B[1, ...
- 算法的时间复杂度分析
算法的时间复杂度是一个函数,它定性描述该算法的运行时间.这是一个代表算法输入值的字符串的长度的函数.时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数.使用这种方式时,时间复杂度可被称为是渐 ...
- 算法的时间复杂度分析之O(logn)、O(nlogn)
复杂度分析之O(logn).O(nlogn) 对数阶时间复杂度非常常见,同时也是最难分析的一种时间复杂度.我通过一个例子来说明一下. int i = 1;while (i <= n) {i = ...
- 基础算法-2: 时间复杂度为O(N*logN)的排序算法
时间复杂度 O(N*logN): 归并排序,堆排序(大根堆,小根堆,heapInsert/heapify),快速排序(荷兰国旗问题). 归并排序 L - Mid - R 先让 左有序,右有序. 归并 ...
- DQN算法的时间复杂度分析
DQN算法的算法流程如下: 时间复杂度: 设: Initialize replay memory D \mathcal{D} D to capacity N N N (运行消耗 t 0 t_0 t0 ...
- 算法学习——时间复杂度分析与渐进符号
时间复杂度 时间复杂度:算法执行运算的操作数丢掉低阶数,再去掉所有系数. 例如 a = 1#操作数1 b = 2#操作数1 c = 3#操作数1 for i in n:#操作数nprint(a,b,c ...
- java快速排序的时间复杂度_程序猿必备排序算法及其时间复杂度分析
常用的时间复杂度 常数阶\(O(1)\) 说明: 只要代码中没有复杂的循环条件,无论代码的函数是多少,一律为常数阶\(O(1)\) int i=1; int j=3; int m=0; m=i+j; ...
- 算法设计与分析基础知识
一.算法设计基础 算法是(algorithm)是对特定问题求解步骤的一种描述,是指令的有限序列. 算法的五个特性: 输入:一个算法可以有零个或多个输入. 输出:一个算法有一个输出或多个输出. 有穷性( ...
最新文章
- “天河二号”总工程师杜云飞谈星光超算应用平台设计
- ConnectivityManager详解
- Premiere Pro CS5软件安装教程
- postman关闭ssl验证_【第5期】springboot:苹果内购服务端验证
- 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
- Veritas Storage Foundation 5.0 HA for Windows
- leetcode520. py解字符串真是太残暴了
- 乘法逆元(洛谷-P3811)
- 洛谷 P3372 【模板】线段树 1
- mac下nvm_2021 搞个 Mac 玩玩吧!
- HAOI2008 移动玩具
- WINDOWS XP 桌面主题的安装制作
- SCI论文全攻略之构思与撰文(二)
- 基于广度优先搜索的六度空间理论的验证
- 深信服 SANGFOR 设备密码恢复和配置备份恢复
- 51jiqiren小语种语音机器人
- asp.net中runat=server的含义
- 入门3D游戏建模,是选择角色建模还是场景建模,看完你来选
- 7代服务器cpu型号,七代酷睿都有哪些型号?_笔记本新闻-中关村在线
- ios android md5加密,iOS中使用MD5加密
热门文章
- Python typing —— 类型提示(type hint)
- 同余定理在算法求解中的应用
- VS2013 MFC 直接将 OpenCV2.0/3.0 库中的 Mat 结构的图像传递到 Picture Control(图片控件)
- Python 数据结构与算法——从二分图到寻找最大排列(Maximum Permutation)
- python中的运算符重载_Python中的操作符重载
- 用python画圣诞树-python圣诞树
- python发音模块-python声音模块
- python编程入门-最好的Python入门教材是哪本?
- 学python有前途吗-入门学习Python编程有前途吗?
- 自学python能找到工作吗-自学Python好找工作吗?