什么是分解计算思维?
计算思维是一种逻辑思维并以有组织的方式解决问题的方式。它是以结构化的方式处理问题并为此类问题创建和表达答案的过程,该答案可以由系统或机器轻松执行。这不仅适用于程序员,而且适用于不同领域的领域。拥有计算思维的知识,可以解决各种定量和数据相关的问题,也将为您解决现实世界的问题打下基础。计算思维因人而异,假设一个人在考虑使用算法,那么不同的人会以不同的方式考虑算法,例如,科学家可能将其视为实验程序,计算机科学家可能将其理解为研究算法及其应用等。计算思维的核心概念包括建模、抽象、分解、算法思维、逻辑思维等。计算思维的一个例子可以是预测天气或气候,只有借助长时间的计算机模型等。在本文中,我们将学习计算思维中的分解。
分解
分解可以定义为解决一个复杂问题并将其分解为更多可以轻松解决的子问题的过程。解决一个复杂的问题有时可能会变得很困难,但是为每个子问题找到解决方案将很简单,之后可以将子问题放在一起以找到原始问题的完整解决方案。这是一种分而治之的技术,在计算之外的各个地方都可以看到。重要的是要注意它不会给你一个完整的行动计划,而是它提供了一个制定一个起点,例如,一个问题可能会被它的子任务分解,但它不会向你显示顺序您可以在其中解决它们。为了更容易理解分解:
- 识别复杂问题的要素或部分
- 将一个任务划分为多个子任务(顺序)
分解的重要性
- 它有助于轻松解决复杂的问题。
- 分解的子任务可以由不同的人或一组人执行或解决(如果一个人对整个问题没有足够的知识)。
- 当问题被划分为子任务时,可以详细检查每个子任务。
例子
计算机科学中分解的最好例子是递归。在递归中,我们使用它来简化问题并将较大的问题分解为子部分,然后解决每个子部分。下面给出了日常生活中使用的一些分解的现实生活中的常见示例:
- 如果您想使用计算机编程制作新游戏,那么为了制作游戏,您将为游戏中的不同动作编写不同的函数,然后这些函数将充当子程序或子任务,之后这些子任务将放在一起形成一个完整的游戏。
- 在体育运动中,有时球队会将对手分成较弱的球队,否则他们会团结成一个更强大的整体。
- 当你想打扫你的房子时,你会列出一个待办事项清单来完成你的任务。
- 在做一个科学项目的时候,我们需要做各种各样的事情,比如背景研究、实验、写论文、提交等等。所以,这也是分解的一个很好的例子。
- 一个人学习一门新语言,以及如何通过将新外语分解成主语、动词和宾语等子部分来形成句子。
- 另一个例子可以是一个数学问题,就像下面的数字 256.37 可以写成 2*10 2 +5*10 1 +6*10 0 +3*10 -1 +7*10 -2
计算机科学中分解的一个很好的例子是归并排序算法。在这个算法中,我们将数组分成两部分,为这两部分调用自身,然后将排序后的两部分合并为一个。下面的归并排序算法表明,将数组递归地分成两部分,直到它的大小变为 1。一旦变为 1,就进行合并过程,将数组完全合并。
MergeSort(arr[], l, r)
If r > l
1. Finding mid point and dividing arr into 2 halves
middle m = l + (r – l) / 2
2. Call mergeSort for first half:
Call mergeSort(arr, l, m)
3. Call mergeSort for second half:
Call mergeSort(arr, m + 1, r)
4. Merging 2 and 3 halves in one:
Call merge(arr, l, m, r)