在如今的比赛,能否写出题已经是一个大问题了,就算暴力写出来也全是超时,时间复杂度如何压缩?这是小编自从写并查集以后开始重视的问题,如果在相同的水平下,而你却写法不同,说不定能拿更高的分数且只高不减,何乐而不为呢?让小编来为大家梳理几种常规压缩时间复杂度的方法。

Number 1  学习更多的算法

  无论如何,学会更多的算法(如快速幂什么的),才能更好地优化你的程序,这才是最重要的方法,如果你只会模拟算法(即写暴力)是不行的,优化程序在于平时的积累,以下的捷径不会一定带来显著的效果。

Number 2  少用除法

  小编多方打探,发现除法似乎在计算机中的运算极为复杂,会影响程序的速度,所以要多用到转化的方法,例如:代码if(a<b/2)这句判断语句用到了除法,那么怎么转换呢?可以改成if(a*2<b)也是可以的,这样一来,不紧保持了意思不变,还加快了速度,因此要多使用转化的方法。

Number 3  位运算

  有时候还真的得使用除法,但是有时候除法也是可以优化的,此时就要使用位运算,举个栗子:现学两招,<<左移符号,在二进制分解中表示向左移一位,也就是a<<b,表示a*=2^b;>>则相反,a>>b,表示a/=a^b;有时使用位运算只是改变了一些写法,意思没变,却提高了效率,可以放心使用位运算。

Number 4  内联

  内联函数这个名字听起来很麻烦的样子,其实想让一个普通函数成为内联函数很简单,只要在函数声明前加inline六个字母即可,众所周知,函数调用时会占用一定的时间,可是如果不写成函数,又会显得代码杂乱无章,既想写得好看,又想程序够快,不妨在函数前写上inline减去不必要的开销。但是内联函数还有一定的局限性,内联函数必须尽可能简单,否则编译器会自动强制取消内联,最好不要出现循环/递归。

Number 5  循环外定义VS循环内定义

  

  代码一

  代码二

  对比以上两种代码,似乎意思相同,只不过是循环内定义和循环外定义。同样,代码一和代码二都用了n次赋初始值,但是代码一定义了x变量n次,而代码二则只用了1次,难道不是代码二更高效吗?所以提倡使用循环外定义。

Number 6  while(1)真的快吗?

  虽然在竞赛中不常用while(1)这种死循环,但是平时我们会用到,小编一想到死循环,就会写while(1),但是事实证明写成for(;;)更快,小编猜想是因为while(1)的循环条件是1为真,需要不断判断,但是for(;;)的循环条件为空,就可以不判断,所以节约了时间。

转载于:https://www.cnblogs.com/TFLS-gzr/p/10351553.html

【时间复杂度】你还在担心时间复杂度太高吗?相关推荐

  1. h5难做吗_还在担心H5太难做?介绍一个H5制作工具给你!

    H5发展越来越快,不得不让企业营销人对H5页面的未来充满了期待,越来越多的人开始在营销中运用H5页面.但是也有许多人陷入了一个难题,即没有技术怎么制作H5.其实,H5页面的制作很简单,只需要一个工具就 ...

  2. 你还在为时间复杂度不懂而担心吗???赶紧进来,这里手把手教你计算时间复杂度!!!

    作者:低调 作者宣言:写好每一篇博客 文章目录 前言 一.什么是时间复杂度? 1.1时间复杂度的概念 1.2复杂度计算在算法的意义 1.3如何计算常见算法的时间复杂度? 二.常见时间复杂度计算举例 三 ...

  3. 怎么减少计算机内存占有,还在为电脑内存占用太高而烦恼吗?教你一招轻松解决...

    查毒了也不管用.结果是电脑的物理内存占用太高了,下面就教大家怎么减少物理内存,希望对您有所帮助! 1.启动"windows任务管理器",快捷键"alt+ctrl+dele ...

  4. 运维:你们 JAVA 服务内存占用太高,还只增不减!告警了,快来接锅

    先点赞再看,养成好习惯 某天,运维老哥突然找我:"你们的某 JAVA 服务内存占用太高,告警了!GC 后也没释放,内存只增不减,是不是内存泄漏了!" 然后我赶紧看了下监控,一切正常 ...

  5. nanopore测序技术专题(六):测序错误率太高无法使用?

    nanopore测序技术专题(六):测序错误率太高无法使用? 十二年前,你嫌illumina测序错误率高,不愿第一个吃螃蟹:七年前,你嫌pacbio的错误率高,觉得应该在等等:四年前,你担心国产的BG ...

  6. 还在担心零基础绘画?这篇文章让你少走弯路!

    零基础学想画画应该怎么学?这些技巧可以让你少走弯路!经常有人问我,我没有绘画基础,现在学画画还能学好吗?会不会很难学?学好之后好不好找工作等等问题!梵高学院就此系统地回答一下这些问题,帮助有需要的同学 ...

  7. 电脑cpu温度太高解决方案

    笔记本电脑cpu温度太高解决方案 前言 夏天,多么美好的一个季节,每当我们吃完晚饭出去散步的时候就能够感受到满满的惬意与舒适.可是夏天有时候对我们这些经常使用笔记本进行软件开发的软件研发工程师十分的不 ...

  8. 马云以2750亿财富第三次成为中国首富;扎克伯格:AWS云服务成本太高;小米否认冰箱由海尔代工 | EA周报...

    EA周报 2019年10月11日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 任正非:鸿蒙最快1年即可媲美iOS和Android 据报道,华为创始人任正 ...

  9. 矮个男生不好找对象?某大厂程序员自称太高也难找对象!身高196cm,有房有车,却被嫌太高!...

    昨天我们写了一篇文章,讲述矮个男生找对象的苦楚,那男生的身高是否越高越好呢? 一个字节跳动的程序员发帖吐槽:看到隔壁矮个男生找对象苦,其实太高找对象也苦.楼主身高196cm,对外声称自己190cm,又 ...

最新文章

  1. 戳破微服务的七大谎言
  2. Notepad++中用正则表达式匹配中文
  3. es6(五):函数的扩展
  4. 面试大厂应该注意哪些问题?隔壁都馋哭了
  5. 李宏毅的可解释模型——三个任务
  6. 经典面试题(23):以下代码将输出的结果是什么?
  7. 推荐微软Windows 8 Metro应用开发虚拟实验室
  8. 选择排序java实现
  9. steam授权_号商福利,Steam验号机器人上线,再也不用手动验号了
  10. 副本技能-邮箱SMTP,IMAP,POP3协议说明及各类邮箱协议配置地址与端口
  11. 七种经典回归分析法全解析
  12. 学生信息管理系统-结构体编写
  13. 聊天的技巧,你是怎样和别人聊天的
  14. 房屋装修(卫生间/浴室)
  15. Sum of Medians CodeForces - 85D(线段树+离散化)
  16. Oracle数据库实训教师评语,教育教学评价系统数据库的设计与实现.doc
  17. Mysql 民族数据库
  18. python 网站爬虫需要哪些技术?
  19. java计算机毕业设计基于web旅游网站的设计与实现源程序+mysql+系统+lw文档+远程调试
  20. 我们该如何谨慎佩戴大厂光环?

热门文章

  1. Comparator--比较器
  2. Python itertools accumulate函数详解
  3. execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘
  4. Python真香之爬取古诗文网
  5. 全网最新最细最全最牛的jmeter接口测试,性能测试,没有之一,如有雷同纯属抄袭。
  6. android代码控制组件的移动,Android自定义控件实现随手指移动的小球
  7. Python“快速复制粘贴”ins数据,一个简单的外国分享网站
  8. fme转换shp面文件到cad自定义填充图案
  9. ic和mos怎么区分_MOS管和IGBT管的定义是什么与怎么辨别呢?
  10. Qt 多显示器扩展模式