时间复杂度简单了解

算法基础:快排优化:为什么快排都会TLE 算法训练中,快排应该是基础中的基础了,直接使用前面介绍的快排,无论是单向循环还是双向循环方式,在特定的数据序列下,都有可能出现TLE(Time Limit Exceeded)超时,这篇文章对原因和基准值的优化进行验证和总结。 阅读详情

当我们在洛谷做题时时常能遇到美丽的彩虹,令人十分高兴,像这样

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDY4NTYyOQ==,size_16,color_FFFFFF,t_70

而其中的TLE和MLE就与我们的标题关联起来,下面是TLE和MLE的意思:

TLE

Time Limit Enough 时间充裕

Time Limit Exceed 超出时间限制/超时

出现TLE是在告诉你,太慢啦,赶紧给我去改代码!

MLE

Memory Limit Enough 内存充裕

Memory Limit Exceed 超出内存限制

出现MLE是在告诉你,你内存炸了,快去改代码!

时间复杂度

所以为了避免以上情况,我们应该对我们自己写的代码有一个预先的估计,而不是写一段代码,让它跑一跑,最后看电脑给你回复的运行时间。

于是聪明的人们提出时间复杂度的概念:

时间频度是每一行代码的执行次数之和,记作T(n).

举个例子:

for(int i=0;i<n;i++)   {cout<<i;               }

int i=1 记1次;i<n 记n+1次;i++ 记n次

cout<<i 记n次

所以,T(n)=3n+2

但是,随着n的不断增大,+2,*3,对于n的影响却越来越小,所以我们对它进行一个简化T(n)~f(n)=n,

记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

所以这段代码的时间复杂度为O(n).

常见的时间复杂度量级

常数阶O(1)

对数阶O(logN)

线性阶O(n)

线性对数阶O(nlogN)

平方阶O(n^2)

立方阶O(n^3)                                             

K次方阶O(n^k)

指数阶O(2^n)

阶乘O(n!)

以上从上至下依次的时间复杂度逐渐增大(建议记住,省的计算)

空间复杂度

(本蒟蒻遇到这种情况不多,等我学明白了再来补充)

 

(C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门) PS:首先我们要知道,在C#中Transform组件是可以直接调用的,而其他的(例如:Rigidbody,Animator)都需要通过 GetConpoment<组件的名称>(); 来获取进行实例化。 例子:调用Rigidbody2D private Rigidbody2D rb2D;//声明变量实例化 void Start() { rb2d = GetComponent<Rigidbody2D>();//获取 } 1.对Unity脚本写入有一定的思维了解... 阅读详情

相关推荐

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2576

洛谷-程序自动分析

题目描述: 输入格式: 输出格式: 输入输出样例: 输入样例1: 2 2 1 2 1 1 2 0 2 1 2 1 2 1 1 输出样例1: NO YES 输入样例2: 2 3 1 2 1 2 3 1 3 1 1 4 1 2 1 2 3 1 3 4 1 1 4 0 输出样例2: YES NO 思路: 这个题是典型的并查集的题目,我们先处理所有的e=1的情况,将所有的相等的情况并在一起,再处理e=0的时候,当我们出现矛盾(即我们已经将某两个数字并在了一起,但是这两个是不能相等的)时,我们便输出NO

北边小洛的博客 425

洛谷的各种状态

启动一下洛谷能把我创亖今天来盘点一下洛谷的各种状态各个评测状态首先是我们最最最喜欢的。

qianzhima2012的博客 8858

一些导致 WA/MLE/TLE 的坑点

本文总结了几个算法竞赛中常见的错误与优化技巧:1.避免使用pow函数计算快速幂以防精度问题;2.节点数多时应使用链式前向星而非vector存图防MLE;3.bool类型不能用%d输入;4.关闭同步流时避免使用递归快写函数;5.注意点双和边双处理时的特殊要求;6.警惕自增运算符在复杂表达式中的使用顺序问题。这些经验教训来自洛谷多道题目的WA/TLE/MLE测试案例。

Bree0307的博客 708

树链剖分入门(洛谷 P3178 [HAOI2015]树上操作)

题目链接 发现一个神奇的现象: 数组开到1e5+5结果是mle和tle。绝望之时看了看题解,发现题解开到5e6都没事。我一怒之下开到1e6+5交了一发准备睡觉,结果。。。过了??wtf? 下面是ac代码: #include <iostream> #include <cstring> #include <string> #include <cmath>...

平凡人Kalzn的博客 703

简单了解时间复杂度

//有一天老板找我要我帮他女儿做一个题目,(他女儿在澳大利亚Emory(埃默里大学)读书),我太难了,她让我计算一下一段代码的时间复杂度和空间复杂度????,这我咋知道啊,我一个大专毕业,问人吧。然后我问了一圈回来发现每一个人会计算的????自己学吧,谁叫我牛逼已经吹出去了呢 然后我就用了整整10个小时搞懂了一点点,后来我吧答案给她的时候她也没回我,我也不清楚对不对。 今天做一个简单的总结吧 p...

qq_41426326的博客 8061

简单了解有关算法时间复杂度和空间复杂度

首先是关于算法效率的问题. 算法效率的分析一般可分为两种:一种是时间效率,一种是空间效率.时间效率被称为时间复杂度,而空间效率被称为空间复杂度. 我们通常用时间复杂度去衡量一个算法的运行速度,而空间复杂度主要衡量的是一个算法所需要的额外空间. 在计算机发展的早些时候,由于计算机的存储容量比较小,所以对于空间复杂度特别在乎,但是经过这么多年计算机行业的迅速发展,我们的计算机容量已经达到了一种相对较高...

persistence_Y的博客 3254

python list remove复杂度_python3 list时间复杂度

一、引题本周在做力扣上的算法题(删除排序数组中的重复项)时,遇到了超出时间限制的问题,后来才知道是我设计的算法时间复杂度过高,于是我就对list的各个基本操作和常用函数的复杂度作了个了解。二、背景知识1.数组是一种线性表结构,其用一块连续的内存空间,来存储一组具有相同类型的数据2.时间复杂度,也叫做渐进时间复杂度,通常用大O公式书写,表示代码的执行时间随数据规模增长的变化趋势,而非真正的执行时间。...

weixin_36166342的博客 3374

常见时间复杂度排行

常见的算法时间复杂度及耗时从小到大的排行如下,供大家查阅,当然最好是记住。 纯手打,谢谢支持!   转载于:https://blog.51cto.com/sydugu/1553398...

weixin_34116110的博客 806

时间复杂度 O(log n) 意味着什么?

原文地址:What does the time complexity O(log n) actually mean? 原文作者:Maaz 译文出自:掘金翻译计划 译者:cdpath 校对者:zaraguo (zaraguo),whatbeg (Qiu Hu) 预先知道算法的复杂度是一回事,了解其后的原理是另一件事情。 不管你是计算机科班出身还是想有效解决...

weixin_30764137的博客 123

编写程序在字符串ABCDEF中匹配字符串CDE,并给出时间复杂度

1.编写程序在字符串ABCDEF中匹配字符串CDE,并给出时间复杂度 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char *str="abcdedab"; char *str2="abd"; int i; int count ...

abk41712的博客 377

时间复杂度笔记

时间复杂度总结

forever_nice的博客 200

以插入排序为例子带你彻底理解算法中的时间复杂度和各种渐进符号

  准备考研的过程中,复习数据结构和算法时先看的是严蔚敏老师的《数据结构》,这本书虽然好但是对时间复杂度算法的渐进性讲解太少,读完之后对其依然没有深刻的理解,于是开始啃《算法导论》,不得不说这本书很难啃,但是确实啃清楚了算法时间复杂度和渐进性。这篇博客我会用到初中程度的代数知识来帮助大家彻底理解。   我选择插入排序作为例子因为这个算法的思路足够简单,可以很容易的分析出最好情况和最坏情况。我...

weixin_30920091的博客 189

排序时间复杂度

冒泡,简单选择,直接插入, o(n方) 希尔 o(n的1.5次方) 快排,堆,归并 o(n log n) 桶,基数,计数 o(n)

Thxxxxxx 378

代码在洛谷上跑得慢怎么办?

### 前言 你有没有试过以下几种情况: - 代码在别的OJ上能过,在洛谷上就T了 - 你的代码和同学的几乎相同,但他的AC了,你的却TLE了

tanjunming2020的博客 3365

洛谷各评测状态的含义

各个评测状态 AC:Accept,程序通过。 WA:Wrong Answer,答案错误。 CE:Compile Error,编译错误。 PC:Partially Correct,部分正确。 RE:Runtime Error,运行时错误。 TLE:Time Limit Exceeded,超出时间限制。 MLE:Memory Limit Exceeded,超出内存限制。 OLE:Output Limi...

weixin_44685629的博客 1万+

洛谷 P1003 [NOIP2011 提高组] 铺地毯 (如何解决MLE?)

洛谷 P1003 [NOIP2011 提高组] 铺地毯 (如何解决MLE?)

Sonaldo的博客 484

洛谷-各个评测状态

洛谷创建于2013年6月15日,至今已有数万用户,致力于为OIers/ACMers提供清爽、快捷的编程体验。它不仅仅是一个在线测题系统,更拥有强大的社区、在线学习功能。同时,许多教程内容都是由五湖四海的ers提供的,保证了内容的广泛性。无论是初学oi的蒟蒻,还是久经沙场的神犇,均可从洛谷Online Judge获益,也可以帮助他人,共同进步。 评测 洛谷评测系统搭建与Linux上,采用分布式集群保...

mengdicfm的博客 4万+

[洛谷P1003]铺地毯,模拟题,二维数组防MLE,java算法

洛谷P1003铺地毯题解,使用一维数组模拟二维数组防止MLE

xiaoqian7758258的博客 299

洛谷---回文质数 Prime Palindromes (普及-)(解决TLE超时问题)

题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。 写一个程序来找出范围[a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。 输入格式 第 1 行: 二个整数 a 和 b . 输出格式 输出一个回文质数的列表,一行一个。 输入输出样例 输入 #1 5 500 输出 #1 5 7 11 101 131 151 181 191 313 353 373 383 #include <st.

qq_61542336的博客 4388

目标检测-电线杆数据集2127张YOLO+VOC格式.zip

数据集格式:VOC格式+YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:2127Annotations文件夹中xml文件总计:2127labels文件夹中txt文件总计:2127标签种类数:1标签名称:["telegraph pole"]每个标签的框数:telegraph pole 框数 = 2700总框数:2700图片清晰度(分辨率:像素):清晰图片是否增强:否标签形状:矩形框,用于目标检测识别重要说明:暂无特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注

上一篇: 原码反码补码的简单了解
下一篇: 测试函数运行时间
ItsNorth
博客等级 码龄5年 7143粉丝 · 45原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ItsNorth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值