《算法基础》——2.7 总结

简介:

本节书摘来自华章计算机《算法基础》一书中的第2章,第2.7节,作者:(美)罗德·斯蒂芬斯(Rod Stephens)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.7 总结

一些数值计算算法(如随机化方法)在各种各样的应用中是有用的。其他算法(如质因子、寻找最大公约数)的用途可能是有限的。如果程序不需要寻找最大公约数,那么最大公约数的算法不会有太大的帮助。
然而,通过这些算法表现出的技术和概念可以在其他许多情况下非常有用。例如,一个算法可以是概率性的,这个想法是在许多应用中都非常重要的。这种想法可以帮助你想出其他的算法,这是个具有不确定性的完美工作(这些问题很容易在面试时遇到)。
本章阐述了公平和偏差的概念,这两个概念对于任何种类的随机化算法都非常重要,如蒙特卡罗积分算法,其重要性也在这一章中有所介绍。
本章还介绍了自适应求积,这种技术让一个程序的大部分重点工作关注在最相关的部分,而较少关注易于执行的部分。设计程序时花最多时间在最重要的部分上,这种理念适用于多种算法。
很多数值算法,如最大公约数、费马素性测试、矩形规则和梯形规则、蒙特卡罗积分,也不需要复杂的数据结构。相比之下,在这本书中描述的大多数其他算法的确需要专门的数据结构来产生所需的结果。下一章介绍了一种数据结构:链表。这些都不是能在本书中找到的最复杂的数据结构,但它们可用于许多其他算法。此外,链接数据的概念在其他数据结构也是有用的,如在树和网络中。

相关文章
|
机器学习/深度学习 人工智能 算法
一文搞懂模型量化算法基础
一文搞懂模型量化算法基础
5296 0
|
算法 C语言
C语言算法基础-在一个单链表中值为y的结点前面插入一个值为x的结点
题目:3.4设计一个算法,在一个单链表中值为y的结点前面插入一个值为x的结点。即使值为x的新结点成为值为y的结点的前驱结点。 题目来自李云清版《数据结构》
434 5
C语言算法基础-在一个单链表中值为y的结点前面插入一个值为x的结点
|
算法 C语言
C语言算法基础-求单链表中带头结点的结点个数
题目:3.2 设计一个算法,求一个单链表中的结点个数。 来源李云清版《数据结构》
382 3
C语言算法基础-求单链表中带头结点的结点个数
|
算法 API
算法基础学习2——冒泡排序
要比较的每一对元素是相邻的,从下标为0开始,到最后一个元素,如果下标设为 j,则相邻元素下标值为 j +1,搜索到最后一个元素:j+1<a.length,而 a.length - 1 = i ;所以终止条件是 j < i
272 0
算法基础学习2——冒泡排序
|
机器学习/深度学习 算法 Java
算法基础学习1——时间复杂度和空间复杂度
算法基础学习1——时间复杂度和空间复杂度
245 0
算法基础学习1——时间复杂度和空间复杂度
|
搜索推荐 Java
Java基础数组-冒泡排序算法
Java基础数组-冒泡排序算法
Java基础数组-冒泡排序算法
|
存储 编解码 算法
【算法基础】希尔排序解析
希尔排序的基本思想是先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。
214 0
|
编解码 算法 网络协议
【算法基础】冒泡排序解析
在我们数组排序中,每一个数组元素根据大小比对,小的元素不断向前移动,如同气泡在冒出一样,我们称这种排序方法为冒泡排序。
367 0
|
机器学习/深度学习 编解码 算法
【算法基础】归并排序解析
归并排序是建立在归并操作上的一种有效,稳定的排序算法,它是采用分治法的一个非常典型的应用。将待排序数组分为两条线逐级拆分,将子序列进行排序,然后沿两条线逐级合并,得到完全有序序列。这种通过递归,层层合并的方法,称为归并。
255 0
|
存储 算法
算法基础
递归算法在计算机系统中用栈帮助实现,一般常见的算法有深度优先遍历(DFS),可以解决的问题有迷宫问题是否连通的问题,递推会对应一个递归搜索树,递归搜索树可以帮助我们更好的理解递归的流程,递归要注意的有是否可以进行剪枝,在迷宫问题中,也要考虑是否要保存原有的迷宫。
312 0
算法基础