ACM时间复杂度及算法的选择分析
ACM时间复杂度及算法的选择分析
一般ACM竞赛C/C++的时间限制是1s,因此可以通过题目数据来推断该题所使用的算法。
以C/C++为例,算法的操作次数在10710^7107左右合适,最多不超过10810^8108,O(n)O(n)O(n)的极限就在10810^8108左右。
算法时间复杂度比较
O(1)O(1)O(1) < O(logn)O(logn)O(logn) < O(n)O(n)O(n) < O(nlogn)O(nlogn)O(nlogn) < O(n2)O(n^2)O(n2) < O(n3)O(n^3)O(n3) < O(2n)O(2^n)O(2n) < O(n!)O(n!)O(n!)
根据题目所给数据范围选择算法
n<200n<200n<200, 可以选择复杂度为O(n3)O(n^3)O(n3)的算法。例:dp,floyd
n<5000n<5000n<5000,可以选择复杂度为O(n2)O(n^2)O(n2)的算法。例:dp,Dijkstra。朴素版Prim
n<1e6n<1e6n<1e6,可以选择复杂度为O(nlogn)O(nlogn)O(nlogn)或者(O(n2logn)(O(n^2logn)(O(n2logn)的算法。例:sort,线段树,树状数组,set,mmap,spfa,凸包,二分
n<1e7n<1e7n<1e7,可以选择复杂度为O(n)O(n)O(n)的算法。例:哈希,双指针,kmp,AC自动机。部分sort,树状数组,spfa
n<1e8n<1e8n<1e8,可以选择复杂度为O(n)O(n)O(n)的算法。例:双指针,kmp,AC自动机,线性筛
n<1e9n<1e9n<1e9,可以选择复杂度为O(n)O(\sqrt{n})O(n)的算法。例:判断质数
n<1e18n<1e18n<1e18,可以选择复杂度为O(logn)O(logn)O(logn)的算法。例:二分,欧几里得算法,幂运算
以上仅为参考,实际做题还需考虑具体数据细节。
ACM时间复杂度及算法的选择分析相关推荐
- 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析
排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...
- 排序算法:简单选择排序算法实现及分析
简单选择排序算法介绍 简单选择排序(Simple Selection Sort)就是通过n-1次关键字排序之间的比较,从n-i+1个记录中选择关键字最小的记录,并和第i(1<=i<=n)记 ...
- 算法的复杂性分析(一)---时间复杂度
只需要记住下面几点即可,不想看下面的可以直接记住下面: (1)用O(n)来体现算法时间复杂度的记法被称作大O表示法 (2)评估一个算法都是直接评估它的最坏的复杂度(渐进函数法). (3)O(1)< ...
- c语言循环链表约瑟夫问题的时间复杂度,用单向循环链表解决约瑟夫问题算法优劣性分析.doc...
用单向循环链表解决约瑟夫问题算法优劣性分析 用单向循环链表解决约瑟夫问题算法优劣性分析 摘要: 首先由简单问题引入约瑟夫问题,然后用单向循环链表解决约瑟夫问题,最后对模拟方法及数学方法的优劣性进行分析 ...
- 【算法设计与分析】16 分治策略:快速排序(快速排序的时间复杂度计算)
上一篇文章学习了:[算法设计与分析]15 分治策略:芯片测试 文章目录 1. 快速排序的基本思想 1.2 时间复杂度的计算 1.21 最坏情况时间复杂度计算 1.22 最好情况时间复杂度 1.23 平 ...
- 【数据结构】算法的渐进分析-渐进时间复杂度
算法的渐进分析(asymptotic algorithm analysis)简称算法分析.算法分析直接与它所求解的问题的规模 n 有关,因此,通常将问题规模作为分析的参数,求算法的时间和空间开销与问 ...
- 算法设计与分析——顺序统计量:期望为线性时间的选择算法
分类目录:<算法设计与分析>总目录 相关文章: · 顺序统计量:最大值与最小值 · 顺序统计量:期望为线性时间的选择算法 · 顺序统计量:最坏情况为线性时间的选择算法 选择算法指的是在一个 ...
- 程振波 算法设计与分析_算法设计与分析
本书按照教育部*制定的计算机科学与技术专业规范的教学大纲编写,努力与国际计算机学科的教学要求接轨.强调 算法 与 数据结构 之间密不可分的联系,因而强调融数据类型与定义在该类型上的运算于一体的抽象数据 ...
- 计算机算法设计与分析二--分治
1.如果问题和以下数据结构相关,那么把他们分成子问题相对容易 n维数组 矩阵 n个元素的集合 树 有向无环图 通用图 2.分治算法一般应用于可以分成子问题的问题 实例: 一.排序问题:对一个n维数组排 ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
最新文章
- minhash算法检索相似文本_文本去重算法:Minhash/Simhash/Klongsent
- Apache - AH00341
- English trip -- VC(情景课)1 D
- 取消Exchange数据库的自动分配功能
- python grid用法_Python numpy.mgrid函数方法的使用
- 屏幕编程 F4的帮组用法
- JupyterLab 配置远程python、R环境(与Jupyter兼容)
- [C++] 用Xcode来写C++程序[3] Constants
- Android开发学习笔记:浅谈ToggleButton
- 微信小程序点击拨打电话,添加联系人,在线客服
- 豆瓣app签名sig
- YAMAHA XJR简易说明[网络]
- 关于cnt++和++cnt
- python入门系列(4) -- python常见应用
- 用c++随机生成10小学生算术题的课设
- html meta标签的常用写法
- 跳过wifi认证直接上网
- 扫描中如何实现自动纠偏
- 以图搜图新体验:图片谷歌和百度识图
- 叙事的变迁:从《街》到《428》