![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归和分治
王心远
这个作者很懒,什么都没留下…
展开
-
2k*2k 棋盘覆盖问题
棋盘覆盖问题问题叙述在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。图示:实例:2. 基本思路:关注的重点是特殊方格,2k2k的棋盘上如果没有特殊点,那么L型骨牌不可能完全覆盖,那么我们分治...原创 2020-04-25 20:04:01 · 7884 阅读 · 0 评论 -
重数 与 众数
重数与众数什么是重数与众数给定含有N个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集合S中重数最大的元素称为多重集合S的众数,众数的重数称为多重集合S的重数,试求一个给定多重结合的重数和众数;例如:S={a,b,b,b,f,f,4,5}的重数是3,众数是b基本思路:采用变治的思想,首先进行预排序,然后通过一次遍历记录所有数据出现的次数,以及最大的一组。算...原创 2020-04-25 19:59:07 · 1685 阅读 · 0 评论 -
快速排序 与 Top-k (第k小数)
快速排序一、快速排序基本思路:快速排序使用分治的思想,通过Partition的动作将原数据集以一个枢轴pivot分割为小于pivot和大于pivot的两个部分,递归地在这两个部分继续分割,直到当前数据集大小为1,这时也完成了排序。算法PARTITION (array, left, right):pivot = array[left]temp=leftwhile (left&...原创 2020-04-25 19:52:23 · 650 阅读 · 0 评论 -
归并排序 MergeSort (设置哨兵)
归并排序基本思路归并排序使用分治的思想,每次将数据集分为前后两个部分,直到规模缩减为一,开始合并;合并时通过申请的空间,遍历两个子数据集,将每一个数据从小到大插入,最后将临时数据复制回原序列,直到最后一次得到完整的序列。算法MERGE(array, begin1, begin2, end):n1 = begin2-beign1n2 = end-begin2+1temp1[n1...原创 2020-04-25 19:43:45 · 664 阅读 · 0 评论 -
二分查找 BinarySearch 递归法及迭代法
**二分查找**基本思路:采取减治的方法,对比中间位置数据与关键字,相等则返回此位置,小于则递归搜索左半部分,否则搜索右半部分,如果搜索集合只剩下一个元素且不是关键字,则没有找到。算法BINARYSORT (array, i, j, key):if (i==j && array[i] ≠ key)if(array[i]<key)return (i, ...原创 2020-04-25 19:40:41 · 458 阅读 · 0 评论