
分治
文章平均质量分 77
ccDLlyy
不忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
棋盘覆盖(分治典例)
问题描述 在一个2^k×2^k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 解题思路 分析:当k>0时,将2k×2k棋盘分割为4个2^k-1×2^k-1 子棋盘(a)所示。特殊方格必位于4个较小转载 2016-08-18 21:17:44 · 1137 阅读 · 0 评论 -
最大子段和(分治与动态规划典例)
最大子段和 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2原创 2016-08-18 20:16:58 · 14074 阅读 · 0 评论 -
第K大元素(分治法)
#include #include #include using namespace std; int Find(int array[],int start,int end,int k){ int temp=array[start]; int i=start,j=end-1; while(i!=j){ while(i<j&&array[j]<=temp) j--; whi原创 2017-01-19 12:10:34 · 3169 阅读 · 0 评论 -
排序之归并排序
要点 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序的基本思想 将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个原创 2016-09-22 22:22:53 · 600 阅读 · 0 评论 -
递归,递推,分治,贪心,动态规划......
一.递归:函数调用自身 二.递推:由递推公式求解,每个子问题均有确切的解,即每个阶段只有一个状态,静态过程。实现:1.自顶向下,递归,有时遇到重复计算的项,可以先存到外部数组,用到时先判断有没有计算过 2.自底向上,解决掉了存在重复用的项的问题 例子:斐波那契数列 三.分治:大问题分解为小问题,再整合成大问题。满足: 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题原创 2017-02-23 19:39:30 · 1213 阅读 · 0 评论 -
分治
/* 分治:大问题~分解——>小问题~合并——>大问题(通常小问题和大问题是一样的问题) 如: 递推 快排 归并排序 ....... */ 把问题分到赫然知道答案的那里,到最小的规模后,不用再考虑复杂程度 分治法 分治法可以通俗的解释为:把一片领土分解,分解为若干块小部分,然后一块块地占领征服,被分解的可以是不同的政治派别或是其他什么,然后让他们彼原创 2016-08-17 10:37:24 · 600 阅读 · 0 评论 -
芯片测试及其应用(分治典例)
问题叙述: VLSI芯片测试 Diogenes教授有n个被认为是完全相同的VLSI芯片,原则上它们是可以互相测试的。教授的测试装置一次可测二片,当该装置中放有两片芯片 时,每一片就对另一片作测试并报告其好坏。一个好的芯片总是能够报告另一片的好坏,但一个坏的芯片的结果是不可靠的。这样,每次测试的四种可能结果如下: A芯片报告 B芯片报告 结论原创 2016-08-18 18:31:12 · 6265 阅读 · 1 评论 -
排序之快速排序
//快排为非稳定排序,因为两个相等的元素,在选择某数为基准数的情况下,可能会互换位置,具体去想原理; //当利用C语言快排函数时,可利用结构体的优先元素排序解决不稳定的问题 //快排基于分治思想 //快排例程很多,自我感觉最全面可靠的是黑皮书教材上的,老美就是厉害,这一点确实得佩服人家,国内的计算机教材真心不敢恭维 //几个快排例程: //一:教材(赞一个) int Median3(int arr原创 2016-09-07 15:16:12 · 523 阅读 · 0 评论