CSDN不支持上下标

收获:

书中只给出算法函数,程序所用数据默认已读入程序并保存在全局变量中。

以高效算法为目标,需要正确估算各种算法的复杂度。

缩短运行时间,主要应该从复杂度入手。

1.3.4程序结构

程序都从标准输入按指定格式读入数据

输入数据已经由main函数读入并保存在全局变量中

通过调用solve函数来求解

1.5以高效算法为目标

1.5.1什么是复杂度

在设计满足问题要求的算法时,我们不可能挨个去试,应当通过估算算法复杂度来判断

在分析复杂度时,我们通常考虑它与什么成正比,并称之为算法的阶。

例如

1.1 四重循环,每重n次,运行的时间与n⁴成正比。

我们将与n⁴成正比写作 O(n⁴),将对应的时间写作 O(n⁴) 时间

1.5.2关于运行时间

程序的运行时间不光取决于复杂度,也会受到诸如循环体的复杂性等因素的影响。

但是,因此造成的差距多数情况下最多也就几十倍。

另一方面,忽略其余因素,n=1000时,O(n³)时间的算法和O(n²)时间的算法差距就是1000倍。

因此要缩短运行时间主要应该从复杂度入手。

估算出算法的复杂度后,只要将数值可能的最大值带入带入复杂的渐进式中,就能简单的判断算法是否能满足运行时间限制的要求。

例如

考虑 O(n²) 时间的算法,限制条件是n<=1000,将n=1000代入 n的平方 就得到了1000000。

在这个数值的基础上,我们就可以结合下表进行判断。

假设时间限制为1秒
1e6                       完全没问题
1e7                       勉强能满足
1e8                       算法循环体稍微复杂一点就很可能超时

挑战程序设计竞赛学习笔记2相关推荐

  1. 《挑战程序设计竞赛》阅读笔记二 之 ALDS1_2_C Stable Sort

    <挑战程序设计竞赛>阅读笔记二 之 ALDS1_2_C Stable Sort 第三章 Sort I ALDS1_2_C Stable Sort 这道题目,就是为了说明 冒泡排序是稳定排序 ...

  2. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  3. 【操作指导 | 代码实现】挑战程序设计竞赛2:算法和数据结构

    书籍封面 第一章 前言 1. 本人衷心建议 ~~~~~~       如果你是一位初学者,我指的是你只会基本的 C/C++ 编程,即使编的很烂,这本书对于你算法和数据结构的提升非常有帮助,所涉及的每一 ...

  4. 挑战程序设计竞赛:反转法

    挑战程序设计竞赛:反转法 1. 题目介绍 1.1 题目 1.2 样例 2. 思路讲解 2.1 视频讲解 2.1 反转法(开关问题) 3. 练习题 4. 附录:程序代码 4.1 Java 4.2 C++ ...

  5. 《挑战程序设计竞赛》推荐及算法相关书籍吐槽

    前几天,秋叶拓哉(iwi).岩田阳一(wata)和北川宜稔(kita_masa)所著,我(watashi).庄俊元(navi)和李津羽(itsuhane)翻译的<挑战程序设计竞赛>,终于通 ...

  6. POJ 1150 The Last Non-zero Digit 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 1150 The Last Non-zero Digit超大组合数:求超大组合数P(n, m)的最后一个非零位.4.1更加复杂 ...

  7. POJ 3735 Training little cats​ 题解 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 3735 Training little cats调教猫咪:有n只饥渴的猫咪,现有一组羞耻Play,由k个操作组成,全部选自: ...

  8. POJ 3608 Bridge Across Islands 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 3608 Bridge Across Islands跨岛大桥:在两个凸包小岛之间造桥,求最小距离?3.6与平面和空间打交道的计 ...

  9. 挑战程序设计竞赛(第2版)》

    <挑战程序设计竞赛(第2版)> 基本信息 作者: (日)秋叶拓哉 岩田阳一 北川宜稔 译者: 巫泽俊 庄俊元 李津羽 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787 ...

  10. AOJ 1312 Where's Wally 题解《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    本文由码农场 同步,最新版本请查看原文:http://www.hankcs.com/program/algorithm/aoj-131 ...

最新文章

  1. 如何利用 C# 实现 K-D Tree 结构?
  2. Android MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器...
  3. OpenCV下的角点获取
  4. 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
  5. android 获取程序,Android获取桌面应用程序
  6. puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 1
  7. C/C++编程笔记:数据结构二叉树的查找(前序、中序、后序、层序遍历)
  8. 排序(2):直接插入排序
  9. 如何提取html的文本,如何从html标签之间提取文本?
  10. Postgresql的一些命令
  11. scrapy爬取cnnvd网址数据
  12. 2023年东北大学外国语言学及应用语言学考研上岸经验贴
  13. qqxml代码天气预报qqxml代码跟url跳转的关系
  14. 怎么更改网络选项为家庭计算机,教你无法设定这是一台家庭计算机怎么操作
  15. 小白C语言编程实战(16):统计4门课的优秀率和不及格率
  16. 钉钉和mis系统对接调研
  17. 华为服务器安装nas系统,云服务器搭建nas
  18. Linux 操作系统的体系结构
  19. python嗅探m3u8_python通过m3u8下载视频
  20. 基于Matlab的三角函数方程组解算方法

热门文章

  1. 数字化医院网络终端安全管理
  2. html+css实现淘宝右侧固定定位导航
  3. 佳能MP145 /140故障代码大全
  4. unity透明通道加颜色_Unity的Gamma颜色空间和Linear颜色空间的小研究
  5. python入门经典电子书-推荐6本学习Python的免费电子书
  6. (四)、Redis删除策略---Redis设计与实现读书笔记
  7. Kepware AB驱动 · 秒懂百科
  8. 如何用vb制作“简单”的表白软件
  9. html调用本地电脑应用,实现HTML调用打开本地软件文件
  10. 读书笔记 摘自:《硅谷钢铁侠:埃隆·马斯克的冒险人生》的笔记(作者: 【美】阿什利·万斯)