对“自顶向下,逐步求精”的解释

来源:互联网 发布:虚幻4用什么编程 编辑:程序博客网 时间:2024/05/16 02:00

  首先,什么是“自顶向下,逐步求精”?它是一种软件的结构化设计方法 ,能够将复杂的问题分解开来。学会分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决。

自顶向下设计是一种逐步求精的设计程序的过程和方法。对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。

分治法

  在我看来,“自顶向下,逐步求精”是分治法的拓展。分治法是将问题分解为规模更小的子问题,再将这些规模更小的子问题逐个击破,最后将已解决的子问题合并,最终得出“母”问题的解,自顶向下设计在其基础上增加了事件处理的优先级,从最重要的问题着手解决,再逐步向下,具有层次结构。

分治法是计算机科学中很重要的一种思想。英文为Divide and Conquer,直译即为分治,或者分而治之。直观的理解就是将一个大而难的问题分解为一些小而易的问题,先解决这些易于解决的小问题,再合并这些小问题的解(合并可以是分别求出小问题的解再合并,或者是直接将相同的小问题合并只求解一次),从而得到大问题的解。需要注意的是小问题必须和大问题是同一个类型的问题,或者说解法相同,这样才可以递归求解。我们发现,这种实际上是自顶向下地分解问题。

  事实上,生活中许多复杂的事物都可以用“自顶向下,逐步求精”的办法去解决(将大脑“机械化”,以“顺序、选择、循环”的思维方式去处理),你会发现,这困难得让人想放弃的事只需要有足够的耐心和合理的计划,其实很简单~~