数据结构和算法 二十、分治法
来源:http://www.tudoupe.com时间:2022-04-23
一、分治法概述
1、基本概念
分裂和征服这是一种重要的算法,也称为区分法和规则法。分区技术可以用来一次解决复杂的问题。首要原则是,按照同样的理念,将一个难以解决的大问题分为两个或两个以上的次级问题。以便各个击破,即“分而治之”。
实际上,每个问题只要有一个过程就能回答,就需要有与其规模和复杂性相称的计算时间。问题的规模越小,越容易直接求解,该分问题的规模可以降低。除非次级问题非常简单,足以解决整个问题。最后,合并了分问题。得到原问题的答案。
该司以下列程序为基础。
分类要求将问题细分为较小的次级问题。
2. 解决:通过重新部署解决分问题,直至解决为止。
3. 合并:最后,合并的分问题作为一个整体解决。

2、简单示例
下面所描述的组合体类型是划分和规则的典型例子。在合并的类别中,我们将阵列分成两个部分,向后排序,然后合并顺序的两个部分。

3. 共同分割算法
1. 分拣算法正在快速分拣。算法选择一个关键元素,并相应重新安排数组项目。因此,任何小于指定轴元素的物项都可以移到轴的左侧。所有更大的碎片都移到右边。最后,该方法按顺序排列轴元素周围的子字符串。
2. 排序也是一种排序算法。该方法将阵列分为两个部分,向后排序,然后将序列拉动的两个部分合并为排序算法。该算法将阵列分为两个部分,向后排序,然后将序列的两个部分合并。
第三,最近一点是在一组Xy平面点之间确定最新点的问题。通过计算和比较每对夫妇之间的距离以获得最小值,这个问题可以在O(n)2时间解决。分区算法用 O (N log N) 秒解决了这个问题 。
斯特拉斯森算法是使两个矩阵乘法的可行方法,两个矩阵乘法的基本方法是三个嵌套周期,O(n3)是O(n2)(8974),在一段时间内乘以两个矩阵。
5. 最常见的FFT算法是Cooley-Tukey快速Fourier转换(FFT)技术,是一种在O(Nlog N)小时运行的分区算法。
6. Karatsuba方法的快速乘法将最多有两个n位数。
4、分治和递归
递归是一种独特的算法。隔离法和相对法是相似的双胞胎。最终会打破一个困难的算法问题让规模越来越小,最后,它使解决分问题更容易。简单来说,至于程序员,“功能”(或“次级程序”)不仅仅是其他功能可能称为(或引用)的软件单位。它们还赋予自己能力,以各种方案设计语言发扬自己。此呼叫函数被称为“递归性 ” 。
谈到回归的正式定义,如果一个函数或次级程序本身被定义或使用,我们可以将其定性为回报;至少必须确定两个相对性要求:一个是可重复的矩形进程,两个是裁减进程以外的出口。
划分和动态规划之间的区别
分区和动态规划都分开,并解决所提供的挑战。我们如何确定用于特定问题的分区和动态规划如何分开,并解决所提供的挑战。我们如何确定用于特定问题的分区和动态规划如何分开。我们如何确定用于特定问题?如果不需要再次处理同样的分问题,就应使用分裂。否则,应使用动态编程或内存。
例如,快速测序是一种分离方法,我们永远不会再讨论同一个子问题。 此外,应使用动态规划来确定Fibonacci的编号。
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
