Gray码是一个长度为2的N次幂的序列,序列中无相同元素,每个元素都是长度为N位的(0,1)串,相邻元素恰好只有一位不同,用分置策略设计一个算法对任意的N构造相应的Gray码。
2021-10-24 15:50:48 537B Gray码 分治法 C++
1
平面最近点对问题分治算法解答,C++实现,代码整洁规范。
2021-10-18 17:33:29 5KB 最近点对 C++ 算法 STL
1
文章目录1. 基本思想2. 代码实现2.1 递归实现2.2 优化—非递归实现3. 性能分析 1. 基本思想 在数列排序中,如果只有一个数,那么它本身就是有序的;如果只有两个数,那么一次比较就可以完成排序。也就是说,数越少,排序越容易。那么,如果有一个由大量数据组成的数列,我们很难快速地完成排序,该怎么办呢?可以考虑将其分解为很小的数列,直到只剩一个数时,本身已有序,再把这些有序的数列合并在一起,执行一个和分解相反的过程,从而完成整个数列的排序。 归并排序与快速排序的思想基本一致,唯一不同的是归并排序的基准值是数组的中间元素 快排 Link:[排序算法] 6. 快速排序多种递归、非递归实现及性能
2021-10-12 13:35:52 596KB 分治算法 复杂度 归并排序
1
大整数乘法 实验描述:给定X和Y都是n位整数,计算乘积XY。分治算法思想,将n位X和Y分成2段,每段n/2位。则X分为AB两段,Y分为CD两段。 有X=A*(10)^(n/2)+B,Y=C*(10)^(n/2)+D;XY=(A*(10)^(n/2)+B)(C*(10)^(n/2)+D)=AC*(10)^n+(AD+BC)*(10)^(n/2)+BD。 证明及详细分析参见教材16页。 编程任务: 给定两个数X和Y,打印出X和Y采用分治法计算X*Y过程中,拆分的ABCD四个部分的值,和最终的计算结果。 Input 输入为两个整数X,Y Output 采用分治法求解过程中计算的ABCD的值,和最终X*Y的结果 输出结果中间有空格 Sample Input 12 12 Sample Output 1 2 1 2 12 * 12 = 144
2021-10-11 10:40:31 985B 大整数乘法
1
在一个2k×2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 当k>0时,将2k×2k棋盘分割为4个2k-1×2k-1 子棋盘,特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。为了将这3个无特殊方格的子棋盘转化为特殊棋盘,可以用一个L型骨牌覆盖这3个较小棋盘的会合处,从而将原问题转化为4个较小规模的棋盘覆盖问题。递归地使用这种分割,直至棋盘简化为棋盘1×1。 已在VS2008上调试通过,使用C++语言
2021-10-10 19:02:43 2KB 棋盘覆盖问题
1
主要介绍了Java基于分治算法实现的线性时间选择操作,涉及java排序、比较、计算等相关操作技巧,需要的朋友可以参考下
2021-09-26 17:52:17 64KB Java 分治算法 线性时间 选择
1
第五讲:分治算法详解 (2).pptx
2021-09-20 12:01:48 536KB c++
1
利用字符串和分治法来实现大整数乘法,内含c++源代码和实验报告说明
2021-09-18 17:09:35 47KB 大整数乘法 分治法 c++
1
2021-07-16:最大子列和问题(C++):https://blog.csdn.net/qq_45913057/article/details/118852988
2021-07-17 12:01:53 4KB c++ 递归算法 在线处理 分治算法
利用分治方法设计大整数乘法的递归算法,掌握分治法的基本思想和算法设计的基本步骤。 问题描述:请用分治法解决整数划分问题,即将一个整数划分为若干个数相加的问题。 例如: 输入:整数4  输出:划分数 5 4=4 1+3=4 1+1+2=4 2+2=4 1+1+1+1=4 一共五种划分方案 注意:1+3=4,3+1=4被认为是同一种划分方案,打印时也需要打印出来。 输入要求:输入任何一个正整数; 输出要求:输出最终的划分方案总数,以及打印所有的划分方案内容。
2021-07-07 13:02:56 62KB 分治算法
1