解决问题的策略-分而治之

一个宏伟的目标看上去遥不可及,这怎么可能做成呢?但是你把这些目标分解成一个一个的小目标,小目标再往下分解,分解到最后,分解成细枝末节时你会发现,这事其实是可以做的。这个做成了再往下走一步,做更大点的事,最后不知不觉,你可能把这宏伟的目标就做成了。

分治法步骤

(1)分解,将要解决的问题划分成若干规模较小的同类问题;

(2)求解,当子问题划分得足够小时,用较简单的方法解决;

(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。

封装需注意事项

(1)每个子组件功能定位需清晰

(2)解除组件之间耦合度

时间: 2024-09-30 20:55:15

解决问题的策略-分而治之的相关文章

程序员解决问题的60个策略(转)

英文原文:60 Problem Solving Strategies 程序员的生活就是解决一个又一个问题,永无止境.这篇文章介绍了一系列解决问题的策略. 根本的指导方针 1. 首先写代码的时候最好不要有缺陷.最好的修复方法就是让 bug 胎死腹中. 良好的单元测试 强制数据库约束 使用输入验证框架 避免未实现的“else”条件 在应用到主程序之前知道如何在孤立的情况下使用 日志 2. print 语句.往往额外输出个一两行将有助于隔离问题. 3. 切换至详细的日志记录.详细的日志记录有助于发现更

【转】程序员解决问题的60个策略

程序员的生活就是解决一个又一个问题,永无止境.这篇文章介绍了一系列解决问题的策略. 根本的指导方针 1. 首先写代码的时候最好不要有缺陷.最好的修复方法就是让 bug 胎死腹中. 良好的单元测试 强制数据库约束 使用输入验证框架 避免未实现的“else”条件 在应用到主程序之前知道如何在孤立的情况下使用 日志 2. print 语句.往往额外输出个一两行将有助于隔离问题. 3. 切换至详细的日志记录.详细的日志记录有助于发现更多的线索. 4. 搜索日志.如果日志太多,可采取关键字或错误代码来搜索

算法策略的总结

策略是面向问题的,算法是面向实现的. 一.不同算法策略特点小结 1.贪心策略 贪心策略一方面是求解过程比较简单的算法,另一方面它又是对能适用问题的条件要求最严格(即适用范围很小)的算法. 贪心策略解决问题是按一定顺序,在只考虑当前局部信息的情况下,就做出一定的决策,最终得出问题的解. 即:通过局部最优决策能得到全局最优决策 2.递推策略 递推也是由当前问题的逐步解决从而得到整个问题的解,依赖于信息间本身的递推关系,每一步不需要决策参与到算法中,更多用于计算 3.递归策略 递归常常用于分治算法.动

软件系统的设计和实现

1.引言 “Hello,wolrd!(世界,你好!)”,我写一些技术性的文章已经有一段时间了,最近一段闲暇时间我没有休息,而是思考我可以写一些东西,可以对朋友们提升开发技能提供一些可能的帮助.自从来到 Stratum Security 公司工作后,我已经从无到有建立了几个新系统并做了好些设计.文档.重构工作.我认识到将这些事情记录到一处可能有些用处,能够帮助减少为了获取这些概念去阅读不同文章的压力. 2.目标人群 我一直想要分享一些经验,分享这些年从编程和最近工作中学到的经验,但是在博客中我不想

贪心算法,递归算法,动态规划算法比较与总结

一般实际生活中我们遇到的算法分为四类: 一>判定性问题        二>最优化问题        三>构造性问题        四>计算性问题 而今天所要总结的算法就是着重解决  最优化问题 <算法之道>对三种算法进行了归纳总结,如下表所示:   标准分治 动态规划 贪心算法 适用类型 通用问题 优化问题 优化问题 子问题结构 每个子问题不同 很多子问题重复(不独立) 只有一个子问题 最优子结构 不需要 必须满足 必须满足 子问题数 全部子问题都要解决 全部子问题都要

《程序设计基础》考试大纲 复习-C语言

一    程序设计基础知识 了解程序和程序语言的概念以及程序设计的步骤.算法的概念.基本特征和 表示:理解程序的三种基本结构.结构化程序设计方法;熟悉几种常见的算法描 述方法:如自然语言.流程图.N-S 流程图及伪代码等. 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.                          计算机程序是由数据结构和算法构成的. 程序语言是指被设计为在计算机上使用的,用于设计开发程序.定义算法或数据结构的一种语言规范 算法的概念 算法是对解决

程序员需要掌握什么

刚入行时,有人对我说只要学好“算法”和“设计模式”就可以当好程序员,从业这么多年我信了. 算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制. 设计模式对于一般程序员来说有点深奥,不是因为内容,而是没有经历过.只有对自己的项目折腾的死去活来时,才会去思考哪里出了问题.

数据结构(DataStructure)与算法(Algorithm)、STL应用

catalogue 0. 引论 1. 数据结构的概念 2. 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 2.3.1 二叉树 3. 物理结构实例 3.1 链表 3.1.1 单向线性链表 3.1.2 单向循环链表 3.1.3 双向线性链表 3.1.4 双向循环链表 3.1.5 数组链表 3.1.6 链表数组 3.1.7 二维链表 3.2 顺序存储 4. 算法 4.1 查找算法 4.2 排序算法 0. 引论 0x1: 为什么要学习数据结构 N.沃思(Niklaus  Wirth)教授提

五大算法思想—贪心算法

贪心法理解 贪心法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变.换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优. 一句话:不求最优,只求可行解. 判断贪心法 对于一个具体的问题,怎么知道是否可用贪心算法解此问题,以及能否得到问题的最优解? 我们可以根据贪心法的2个重要的性质去证明:贪心选择性质和最优子结构性质. 1.贪心选择性质 什么叫贪心选择?从字义上就是贪心也就是目光短线,贪图眼前利益,在