对于自顶向下,逐步求精的理解
来源:互联网 发布:银河历险记3mac破解版 编辑:程序博客网 时间:2024/05/17 05:11
自顶向下,逐步求精是计算机领域的一个重要思想,可以教会我们模块化分治的函数编程方法。
自顶向下最初是把问题分解成一套子问题,然后再把子问题分解成子问题。这一过程将持续到每一个子问题足够基础,可以不用再被分解。有一种树形结构表示问题和子问题的关系,在树形结构中,每一层模块都可以调用下层模块的服务,这些模块是算法的基本构件。把问题分解为子问题的目的是要独立的解决每个模块。在计算领域中一个模块可能用于对数据求和,一个模块用于输出所求的和,每一个都有各自的功能,然后相互组合来解决上一模块的问题。
一般,我们会花些时间从全局来考虑一下问题,然后记下主要步骤,在分析步骤里的细节问题,如果我们不知道怎么完成某个任务,可以先跳过他,完成另一个,之后有灵感后再来完成它,这就是分治策略,把问题分解成子问题,独自解决各个模块。这正是设计算法时要使用的过程。写下主要步骤,它们将成为主要模块。然后开始着手开发,如果不知道如何解决,那么不妨分解它为几个子问题,再继续开发。
这个过程在多个层次中重复,把每个任务扩展成最小的细节。需要扩展的步骤是抽象步骤,不需要扩展的步骤是具体步骤。如果一个任务困难重重,可以把他的细节分解到较低的层次中,整个问题将被分解为能够解决的单元。自顶向下将复杂的大问题分解为相对简单的小问题,找出每个问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。其核心本质是”分解”。
编写自顶向下的设计方案与编写论文的大纲相似。尽管计算还是一个新领域,但这种解决问题的方法还是现实生活中常用的。
以洗衣机为例,写一个伪代码表示它的过程
READ 用户洗衣模式
READ 注水量
SET water to 0
FUNCTION wateropen(注水量)
{
WHILE (water < 注水量)
{
注水
Water 计水
}
}
FUNCTION dip(用户洗衣模式)
{
IF(用户洗衣模式==浸泡){
SET timer to 0
WHILE (timer < 浸泡时间)
{
停止运行
Timer 计时
}
}
}
开始洗衣
FUNCTION begin(洗衣时间)
{
SET timer to 0
WHILE(timer < 洗衣时间)
{
滚筒左三次右三次
Timer 计时
}
}
FUNCTION waterout(水量)
{
WHILE(water > 0)
{
排水
Water 计水
}
}
FUNCTION dry(脱水时间)
{
SET timer to 0
WHILE(timer<脱水时间)
{
脱水
Timer 计时
}
}
一个链接看自顶向下:https://www.bilibili.com/video/av12475150/?from=search&seid=12550729854363901053
- 对于自顶向下,逐步求精的理解
- 自顶向下,逐步求精 一些理解
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- “自顶向下,逐步求精”
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精
- 自顶向下,逐步求精方法
- 自顶向下 逐步求精
- 自顶向下 逐步求精
- 自顶向下,逐步求精
- JavaEE开发使用MySQL连接池原理及好处
- Kali Linux中下载工具Axel的安装和使用
- 可搜索多选下拉列表插件
- POI读取文件的最佳实践
- JSP(Java Server Page)
- 对于自顶向下,逐步求精的理解
- Python字符串的基本操作
- MYSQL使用通配符[charlist]的方法
- NFS原理详解
- 用if else 完成成绩的分布, while完成循坏。
- Java语言学习(三) 面向对象初步(1)
- 插入排序,选择排序和快速排序
- 机器学习第一个算法决策树(DecisionTree)
- Unity Shader 学习笔记(28) 噪声纹理、消融效果、水波效果、噪声雾效