📝 算法教程的设计与分析
41篇技术文档📅  最后修改于: 2021-01-12 03:40:20        🧑  作者: Mango
它是按照分而治之的原则使用的。快速排序是很多情况下的首选算法,因为它并不难实现。这是一种很好的通用排序,并且在执行过程中消耗相对较少的资源。好处它就位,因为它仅使用一个小的辅助堆栈。仅需要n(log n)次即可对n个项目进行排序。它的内部循环极短。该算法已经过全面的数学分析,可以对性能问题做出非常精确的陈述。缺点它是递归的。特别地,如果递归不可用,则实现极其复杂。在最坏的情况下,它需要二次(即n2...
📅  最后修改于: 2021-01-12 03:40:39        🧑  作者: Mango
基数排序是许多人在按字母顺序排列大量名称时直观地使用的一种小方法。具体地,首先根据每个名称的首字母对名称列表进行排序,即,将名称排列为26个类别。凭直觉,人们可能想对数字的最高有效位进行排序。但是,基数排序通过首先对最低有效数字进行排序而违反直觉。在第一遍中,所有数字都按最低有效位排序,并组合成一个数组。然后在第二遍,将所有数字再次在第二个最低有效数字上排序,并组合成一个数组,依此类推。分析对于最...
📅  最后修改于: 2021-01-12 03:40:56        🧑  作者: Mango
要了解P和NP类,首先我们应该知道计算模型。因此,在本章中,我们将讨论两个重要的计算模型。确定性计算与P类确定性图灵机这些模型之一是确定性单带图灵机。该机器由一个有限状态控制,一个读写头和一个具有无限序列的双向磁带组成。以下是确定性单带图灵机的示意图。确定性图灵机的程序指定以下信息-磁带符号的有限集合(输入符号和空白符号)有限状态集过渡函数在算法分析中,如果问题可以通过确定性的一台磁带图灵机在多项...
📅  最后修改于: 2021-01-12 03:41:14        🧑  作者: Mango
在无向图中,集团是给定图的完整子图。完全子图意味着该子图的所有顶点都连接到该子图的所有其他顶点。Max-Clique问题是找到图的最大集团的计算问题。 Max派系用于许多现实问题。让我们考虑一个社交网络应用程序,其中顶点表示人们的个人资料,边缘表示图形中的相互认识。在此图中,集团代表了彼此认识的人的子集。为了找到最大的集团,可以系统地检查所有子集,但是这种暴力搜索对于包含数十个顶点的网络来说太耗时...
📅  最后修改于: 2021-01-12 03:41:31        🧑  作者: Mango
无向图G =(V,E)的顶点盖的顶点V“⊆v的如果边(u,v)为G的边缘,然后或者ü在V或VINV”或一个子集都。在给定的无向图中找到最大尺寸的顶点覆盖。该最佳顶点覆盖是NP完全问题的优化版本。但是,找到接近最佳的顶点覆盖并不难。例给定图的边集是-{(1,6),(1,2,2,(1,4),(2,3),(2,4),(6,7),(4,7),(7,8),( 3,8),(3,5),(8,5)}现在,我们从选...
📅  最后修改于: 2021-01-12 03:41:58        🧑  作者: Mango
在计算机科学中,要解决的问题是目标是最大化或最小化某些值,而在其他问题中,我们尝试查找是否存在解决方案。因此,问题可以归纳为以下几种:优化问题优化问题是目标是最大化或最小化某些值的问题。例如,找到给定图形着色所需的最小颜色数。在图中找到两个顶点之间的最短路径。决策问题对于许多问题,答案是是或否。这些类型的问题称为决策问题。例如,给定图是否只能用4色着色。在图形中查找汉密尔顿周期不是决策问题,而检查...
📅  最后修改于: 2021-01-12 03:42:19        🧑  作者: Mango
斯蒂芬·库克(Stephen Cook)在他的论文“定理证明程序的复杂性”中提出了四个定理。这些定理如下所述。我们确实知道在本章中使用了许多未知的术语,但是我们没有任何范围来详细讨论所有内容。以下是斯蒂芬·库克的四个定理-定理1如果某个不确定的图灵机在多项式时间内接受了一组字符串S,则S对{DNF重言式}是P可归约的。定理2以下集合是成对的彼此可归约的P(因此每个集合具有相同的多项式难度):{重言...
📅  最后修改于: 2021-01-12 03:42:45        🧑  作者: Mango
如果在NP中并且与NP中的任何问题一样困难,则属于NPC类。如果NP中的所有问题都可以用多项式时间简化,则问题是NP难的,即使它可能不是NP本身也是如此。如果针对这些问题中的任何一个存在多项式时间算法,则NP中的所有问题都可以通过多项式时间解决。这些问题称为NP-complete。 NP完全现象在理论和实践上都很重要。NP完全性的定义如果语言B满足两个条件,则它是NP完全语言B在NP中NP中的每个...
📅  最后修改于: 2021-01-12 03:43:12        🧑  作者: Mango
前几章讨论的算法是系统运行的。为了实现该目标,需要存储一条或多条先前探索的解决方案路径,以找到最佳解决方案。对于许多问题,实现目标的路径是无关紧要的。例如,在N-皇后问题中,我们不需要关心皇后的最终配置以及皇后添加的顺序。爬山爬山是一种解决某些优化问题的技术。在此技术中,我们从次优解决方案开始,并反复改进解决方案,直到某些条件最大化。比较从以次优解决方案开始的想法与从山的底部开始的想法,将解决方案...
📅  最后修改于: 2021-01-12 03:43:29        🧑  作者: Mango
以下资源包含有关算法设计和分析的其他信息。请使用它们来获得有关此方面的更深入的知识。算法设计和分析的有用链接分析算法Wiki-面向DAA的维基百科参考。关于算法设计和分析的实用书籍要在此页面上注册您的网站,请发送电子邮件至...
📅  最后修改于: 2021-01-12 03:43:42        🧑  作者: Mango
算法是解决问题的一系列步骤。算法的设计和分析对于设计算法以解决计算机科学和信息技术领域的不同类型的问题非常重要。本教程介绍了设计策略的基本概念,算法的复杂性分析,然后介绍了图论和排序方法方面的问题。本教程还包括有关复杂性理论的基本概念。...