http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子...
分类:
编程语言 时间:
2015-05-13 19:36:34
阅读次数:
150
* 分治法,所谓分治当然是分而治之,化整为零。
* 分治法分为两部分,1.分(Divide)2.治(Conquer)
* 在排序算法中我们用到的二分排序就是分治法最经典的一个例子
* 传统的分治法要运行两次及其以上的递归算法,一般用分治法解决问题的时间复杂度是O(N*lgN)...
分类:
其他好文 时间:
2015-05-11 20:07:19
阅读次数:
163
组合游戏的和通常是很复杂的,所以我们介绍一种新工具,可以使组合问题变得简单————SG函数和SG定理。
Sprague-Grundy定理(SG定理):
游戏和的SG函数等于各个游戏SG函数的Nim和。这样就可以将每一个子游戏分而治之,从而简化了问题。而Bouton定理就是Sprague-Grundy定理在Nim游戏中的直接应用,因为单堆的Nim游戏 SG函数满足 SG(x) =...
分类:
其他好文 时间:
2015-05-07 10:36:37
阅读次数:
136
百度面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。
IP 是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的 IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即 为所求。
百度面试题2、搜...
分类:
编程语言 时间:
2015-04-29 19:53:53
阅读次数:
192
1、MapReduce理论简介1.1、MapReduce编程模式 MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"。 在Hadoo.....
分类:
其他好文 时间:
2015-04-23 19:09:58
阅读次数:
123
1、从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备。一般来说,STL容器分两种: 序列式容器(vector/list/deque/stack/queue/heap), ...
分类:
编程语言 时间:
2015-04-19 14:35:15
阅读次数:
231
希尔排序的诞生是由于插入排序在处理大规模数组的时候会遇到需要移动太多元素的问题。希尔排序的思想是将一个大的数组“分而治之”,划分为若干个小的数组,以gap来划分,比如数组[1, 2, 3, 4, 5, 6, 7, 8],如果以gap = 2来划分,可以分为[1, 3, 5, 7]和[2, 4, .....
分类:
编程语言 时间:
2015-04-18 17:30:05
阅读次数:
149
快速排序也是用归并方法实现的一个“分而治之”的排序算法,它的魅力之处在于它能在每次partition(排序算法的核心所在)都能为一个数组元素确定其排序最终正确位置(一次就定位准,下次循环就不考虑这个元素了)。 快速排序的partition操作按以下逻辑进行,假定本次排序的数组为arr:1)选择...
分类:
编程语言 时间:
2015-04-18 17:28:33
阅读次数:
139
归并排序采用的是递归来实现,属于“分而治之”,将目标数组从中间一分为二,之后分别对这两个数组进行排序,排序完毕之后再将排好序的两个数组“归并”到一起,归并排序最重要的也就是这个“归并”的过程,归并的过程中需要额外的跟需要归并的两个数组长度一致的空间,比如需要规定的数组分别为:[3, 6, 8, .....
分类:
编程语言 时间:
2015-04-18 17:24:22
阅读次数:
171
设计一系统涉及方方面面。下面我们单从性能方面描述设计的考虑。解决软件架构设计问题,我们遵循分而治之的方略。所以我们看到有横向的划分跟纵向的分层。这样我们才可能把问题各个击破。在业务层面上,我们可以考虑把系统拆分成子系统。子系统相对独立并协调合作。自然我们可..
分类:
其他好文 时间:
2015-04-14 20:09:37
阅读次数:
168