分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排 ...
分类:
编程语言 时间:
2017-11-21 22:04:24
阅读次数:
205
高级篇算法,包括 快速排序和希尔排序。首先介绍快速排序。 1. quicksort,C.A.R.Hoare (1934~)Turing Award,1980 2. 分治策略,分而治之 quicksort VS. mergesort (1) 将序列分为两个子序列:S = S1 + S2 规模缩小,彼此 ...
分类:
编程语言 时间:
2017-11-19 12:32:42
阅读次数:
240
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到 ...
分类:
编程语言 时间:
2017-11-08 00:52:51
阅读次数:
310
文章概述 偶然的情况下在豆瓣上看到这本《调试九法》,心想一本142页的书居然评分达到9.0,索性也读下以便了解软件测试. 这本书引言部分说明这本书的魅力所在,也就6-7页,但不看也不会影响后面章节的阅读. 为什么会觉得这本书是指路灯,因为它通过例子提醒你可能已经知道但是忽略的方向. 告诉你,你为什么 ...
分类:
其他好文 时间:
2017-11-07 12:16:12
阅读次数:
250
第八章 需求分析 8.1 软件需求 1. 获取和引导需求(Elicitation) 2. 分析和定义需求(Analysis&Specification) 3. 验证需求(Validation) 4. 在软件产品的生命周期中管理需求(Management) 8.2 软件产品的利益相关者 1.用户 2. ...
分类:
其他好文 时间:
2017-10-26 21:05:09
阅读次数:
186
转:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html 1,MapReduce编程模型 MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间 ...
分类:
其他好文 时间:
2017-10-25 21:23:36
阅读次数:
106
1、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 1) 可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 2) 遍历文件a,对每个url求取 , ...
分类:
编程语言 时间:
2017-10-22 00:32:09
阅读次数:
226
一、数据之间的关系 线性关系、一对一、一对多、多对多 二、复杂度 1.时间复杂度:耗费时间的长度2.空间复杂度:占用存储单元的长度3.如果计算时间复杂度、空间复杂度? 三、线性关系 1.链表 算法: 1.二分查找法:通过分成两半,不断地缩小范围,进行查找 2.分而治之:先将数据"分",然后再抓住交界 ...
分类:
其他好文 时间:
2017-10-17 22:52:47
阅读次数:
123
静态分析关注系统的要素和组织(联系);强调的是部分如何组成整体;着重于要素的局部联系。 动态分析关于于系统的功能:前调的是要素与联系如何组成链条,完成事务的处理。 动态分析依靠静态分析支持; 静态分析依靠动态分析验证。 静态分析思想:自顶向下、删繁就简、分而治之,逐步求解; 动态分析思想:将分开的要 ...
分类:
其他好文 时间:
2017-10-13 10:21:54
阅读次数:
156
##软件的根本问题###建模###次要问题1.复杂性2.隐匿性3.配合性4.易变性 ##基本思想(复杂性)###分而治之;###拼图思想;###分拆与组合; ##软件的基本要素###组件###联系 ##软件生长的方式###组合###继承 ##面向对象设计的概念###封装封装的越好耦合性越低###抽象 ...
分类:
其他好文 时间:
2017-09-30 19:59:46
阅读次数:
185