第一部分基础知识 插入排序(增量式方法) 归并排序(递归技术)、分治法第二部分排序和顺序统计学 堆排序、堆(优先级队列) 快速排序 计数排序、基数排序、桶排序第三部分数据结构 栈、队列、链表 树 散列表 二叉查找树 红黑树第四部分高级设计和分析技术第五部分高级数据结构第六部分图算...
分类:
编程语言 时间:
2015-10-29 21:46:01
阅读次数:
192
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅...
分类:
编程语言 时间:
2015-10-26 17:00:58
阅读次数:
220
分治法和字典树都可以,都是递归,但字典树耗内存 从第一bit开始,若相同则xor为0,分到同一部分,不相同则统计,且此时lowbit为这一bit,最后结果要乘以2 1 /*分治法*/ 2 #include 3 #define MOD 998244353 4 5 using namespac...
分类:
其他好文 时间:
2015-10-13 20:58:53
阅读次数:
167
归并排序http://blog.csdn.net/morewindows/article/details/6678165归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并操作:http://www.tuicool.co...
分类:
编程语言 时间:
2015-10-12 00:32:47
阅读次数:
239
1、算法思想 快速排序是一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 (1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的...
分类:
编程语言 时间:
2015-10-11 00:31:29
阅读次数:
479
一、分治法的思想 把复杂的问题分解,再分解,成为很小的问题,解决这些小问题之后合并,再合并。这就是分治法的思想。 通常分治法是递归的。 二、归并排序 归并排序就是利用分治法,把无序的数列拆分成多个子数列...
分类:
编程语言 时间:
2015-10-08 21:42:55
阅读次数:
167
原文:http://blog.csdn.net/morewindows/article/details/6678165归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要...
分类:
编程语言 时间:
2015-10-05 14:14:29
阅读次数:
179
基本思想 归并排序简单的说就是递归后合并,该算法是分治法(Divide and Conquer)的一个典型应用。 基本思想为:将待排序序列R[0...n-1]看成是n个长度为1的有序序列,两两有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,如此反复进行下去,最后得到一个长度.....
分类:
编程语言 时间:
2015-10-04 20:54:07
阅读次数:
272
public class Main { //测试函数 public static void main(String[] args) { final int LENGTH=50; int[] a=new int[LENGTH]; a[0]=1; for(int i=1;i1){ i...
分类:
编程语言 时间:
2015-09-25 12:55:27
阅读次数:
213
4.3 折半查找 对于有序数组的查找来说,折半查找是一种性能卓越的算法。它通过比较查找健K和数组中间元素A[m]来完成查找工作。如果它们相等,算法结束。否则,如果KA[m],则对数组的右半部分执行该操作。 折半查找是基于递归思想的,但也可以以迭代方式实现。 代码实现: /** * 折半查找(递归方式...
分类:
其他好文 时间:
2015-09-18 21:53:47
阅读次数:
257