文章 2017-09-19 来自:开发者社区

《算法技术手册》一2.3.1 最坏情况

2.3.1 最坏情况 对于任一特定值n,算法或者程序在处理所有规模为n的样本时的执行时间可能会发生巨大的变化。对于一个给定的程序和一个给定的值,最坏的执行时间就是处理所有规模为n的数据所需要的最长执行时间。之所以关注算法的最坏情况,是因为它通常是最容易分析的情况。此外,它还能够说明程序在各种场景下到底会有多慢。更正式地说,如果Sn是所有规模为n的问题样本si构成的集合,t()代表算法对于每一个问....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一2.1 问题样本的规模

2.1 问题样本的规模 问题样本是解决问题的程序所使用的特定输入数据集。在大部分问题中,随着这一数据集规模的增长,程序的执行时间也在不断增加。同时,过度地对样本数据进行编码(可能使用了压缩技术),可能会不必要地降低程序的执行效率。寻找一种最优的样本编码方式是极其困难的,因为问题发生在复杂的现实世界,而且还需要进行合理的翻译才能被程序求解。在评估算法时,我们会尽量假定问题样本的编码并不是影响算法效....

智能运维赛(复赛):利用数据和算法,快速定位系统异常并进行根因分析

1 课时 |
49 人已学 |
免费

智能创作赛(复赛):相册应用中的视频故事生成算法介绍

1 课时 |
27 人已学 |
免费

智能创作赛(初赛):相册应用中的故事生成算法介绍

1 课时 |
17 人已学 |
免费
开发者课程背景图
文章 2017-09-08 来自:开发者社区

《算法技术手册》一导读

前言 修订一本书向来都是一项艰巨的任务。我们既希望保留第1版(于2009年出版)中的精华,也希望弥补其中的一些不足并增加一些新的篇幅。在第2版中,我们延续了第1版中列出的原则,包括:使用实际代码而非伪代码来描述算法。将算法独立于解决的问题之外。恰到好处地介绍数学知识。以经验主导支撑数学分析。在更新修订过程中,我们精简了文字描述,简化了一些布局,从而有助于补充新的算法和其他内容。我们相信,从概括的....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.6.2 分治

3.6.2 分治 分治通常是将一个规模为n的问题划分成两个独立的子问题,其中每个子问题的规模约为n/2。大部分时候分治策略是递归形式的,并且会有简单易懂的基本条件用于结束递归。此外,在计算出两个较小问题的解之后,还必须要有一些计算来根据子问题的解计算出原问题的解。下面来看一个例子:求包含n个数的数组中的最大元素。例3-2展示了如何将原问题分解成两个子问题并通过递归求解。通常,最大值一般是两个子集....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.4.4 特殊值

3.4.4 特殊值虽然所有可能的64位值都可以用于表示有效的浮点数,但IEEE标准还是定义了一些值来表示特殊的数字(它们通常不会被标准的数学计算操作所使用,例如加法或者乘法),见表3-4。设计这些值是为了易于从一些常见的错误中恢复,例如除以0、平方根是负数、计算时的上溢和下溢。注意,正零和负零也出现在这张表中,它们可以在计算中使用。表3-4:特殊的IEEE 754值这些特殊值是异常发生时返回的结....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.4.3 浮点值的比较

3.4.3 浮点值的比较 因为浮点值只是近似,所以即使是最简单的浮点操作都有可能出错。例如如下表达式:if (x == y) {...}这个表达式是真的表示两个浮点数完全相等吗?或者是表示这两个数近似相等吗(这种情况下可以使用≌这个符号)?有没有两个值虽然不同,但是相差非常小却仍然被认为是相等的呢?我们来看个例子,笛卡儿坐标系上有三个点,p0 = (a, b)、p1 = (c, d)和p2 = ....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.4.2 舍入误差

3.4.2 舍入误差 考虑到浮点数的表示形式,任何使用浮点数的运算都有可能存在舍入误差。因为最初设计浮点数的时候,我们使用了一个有限的数来近似地表示一个实数,而这个实数的范围可以大到无限大。表3-2展示了浮点数的表示方式(以3.88f为例)。表3-2:浮点数表示 3.88f后面接下来三个连续的32位浮点表示是: 随机选择三个32位的单精度浮点数,表示为: 在32位浮点数中,1位用于表示符号,8位....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.2 伪代码模板的格式

3.2 伪代码模板的格式 本书中的每个算法都可以用主流的编程语言实现,例如Python、C、C++ 和Java。由于有些读者不熟悉这些语言,我们会先用伪代码描述算法,并辅以一个小例子来解释运行过程。下面的例子给出了描述算法性能的模板,它包含算法名称,以及第2章中所述的算法的三个性能指标(最好情况、平均情况和最坏情况)。伪代码的描述应当尽可能得简洁。其中关键字和函数名称用粗体字表示,所有变量采用小....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一3.1 算法模板的格式

3.1 算法模板的格式 使用模板来描述算法的好处在于可以很方便地对比各种算法的相似和不同之处。本书中的每种算法都会遵照模板格式使用固定的小节进行展示。如果某个小节不适用于当前算法或者没有什么价值,就会略去。 3.1.1 名称 算法的描述性名称,用来方便区分其他算法。例如,当我们讨论顺序搜索时,这个名称可准确表达所讨论的是哪种搜索算法。算法的名称永远用粗体表示。 3.1.2 输入/输出 描述输入/....

文章 2017-09-08 来自:开发者社区

《算法技术手册》一2.6 参考文献

2.6 参考文献 Bentley, J., Programming Pearls. Second Edition. Addison-Wesley Professional, 1999,Bentley, J. and M. McIlroy, “Engineering a sort function,” So ware—Practice and Experience, 23(11): 1249-1.....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。