软件和软件工程都是复杂的东西; 针对复杂性的处理方案是分而治之; 需要把复杂的问题分解成几个维度来考察。 https://www.ibm.com/developerworks/cn/rational/1312_wanggb_arch/index.html 架构分解的原则 德国哲学家、数学家莱布尼兹一 ...
分类:
其他好文 时间:
2017-09-27 16:16:49
阅读次数:
172
这篇博客主要讲的是动态规划入门,即动态规划的思想,并且再讲解动态规划的最简单的一个方法。 首先,什么是动态规划? 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。其实就是分解问题,分而治之。可能这样说大家都不太理解,其实这个有点类似于数学中的递推公 ...
分类:
编程语言 时间:
2017-09-23 20:19:48
阅读次数:
189
“分治者,分而治之也”分治法的主要思想就是1.若问题足够小,解决并返回 2.若问题规模不够小,减小问题规模。分治法,很容易理解,就是大而化小,小而化了的思想,把问题划分成你能解决的问题。 ...
分类:
编程语言 时间:
2017-09-09 18:15:24
阅读次数:
170
转自:Angel_Kitty Sprague-Grundy定理(SG定理): 游戏和的SG函数等于各个游戏SG函数的Nim和。这样就可以将每一个子游戏分而治之,从而简化了问题。而Bouton定理就是Sprague-Grundy定理在Nim游戏中的直接应用,因为单堆的Nim游戏 SG函数满足 SG(x ...
分类:
其他好文 时间:
2017-09-04 22:44:17
阅读次数:
269
如果对Hadoop- MapReduce分布式计算框架原理还不熟悉的可以先了解一下它,因为本文的wordcount程序实现就是MapReduce分而治之最经典的一个范例。 单词计数(wordcount)主要步骤: 1.读数据 2.按行处理 3.按空格切分行内单词 4.HashMap(单词,value ...
分类:
其他好文 时间:
2017-08-15 10:20:24
阅读次数:
218
MapReduce是一种编程模型。Hadoop MapReduce采用Master/slave 结构。只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序。核心思想是:分而治之。Mapper负责分,把一个复杂的业务,任务分成若干个简单的任务分发到网络上的每个节点并行 ...
分类:
其他好文 时间:
2017-08-15 10:09:36
阅读次数:
155
医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类 ...
分类:
其他好文 时间:
2017-08-09 19:08:15
阅读次数:
134
. MapReduce基本编程模型和框架 1.1 MapReduce抽象模型 大数据计算的核心思想是:分而治之。如下图1所示。把大量的数据划分开来,分配给各个子任务来完成。再将结果合并到一起输出。 注:如果数据的耦合性很高,不能分离,那么这种并行计算就不适合了。 图1:MapReduce抽象模型 1 ...
分类:
其他好文 时间:
2017-08-05 19:01:47
阅读次数:
132
01初始阶段 大型网站都是由小型网站演变而来的,网站架构也一样 小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样: 应用程序、数据库、文件等所有资源都在一台服务器上,通常使用 Linux PHP MySQL Apache 就可以完成整个项目部署,然后再买个域名,租一个廉价的服务器就 ...
分类:
Web程序 时间:
2017-07-28 22:20:35
阅读次数:
163
归并排序的主要思想:它的主要思想就是分而治之的思想,首先,他是把一个待排序数组分为两个待排序为一个小组的若干个数组,这是分,然后把这些个待排序的小数组两两合并,合并为一个排好序的数组,这就是治。归并排序是稳定排序。 代码如下: ...
分类:
编程语言 时间:
2017-07-28 14:10:55
阅读次数:
179