当前位置: 首页 > news >正文

分治算法的基本知识记录

分治算法的全称应该是分而治之( divide and conquer, D&C)

一、概念

1、简单定义

分治算法的核心思想是将原问题划分成规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解。

2、性质

D&C并非可用于解决问题的算法,而是一种解决问题的思路。

3、基本要求

根据D&C的定义,每次递归调用都必须缩小问题的规模。

二、步骤

使用D&C解决问题的过程最重要的是两个步骤。
(1) 找出基线条件,这种条件必须尽可能简单。
(2) 不断将问题分解(或者说缩小规模),直到符合基线条件。

最后将问题递归解决,并合并出最终的解

三、核心思路

与核心思路相对应的,分治思想核心思路也是两条
1、 找出简单的基线条件;
2、 确定如何缩小问题的规模,使其符合基线条件。

基线条件的定义参见递归算法的相关概念

四、使用条件

使用D&C解决问题,往往需要满足以下条件,才能实现或充分发挥D&C的优越性

1、问题的规模缩小到一定的程度 可以直接求解

2、问题可以分解为若干个规模较小的相同问题,即该问题具有 最优子结构性质

3、利用分解出的子问题的解 可以合并为问题的解

4、分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题


http://www.mrgr.cn/news/53420.html

相关文章:

  • 机器学习:opencv--风格迁移
  • 内网横向渗透技术详解(自学)
  • 阿里字节技术管理岗位面试要求
  • Ansible自动化工具
  • SSM框架学习(七、MyBatis-Plus高级用法:最优化持久层开发)
  • [Java基础] 输入输出流
  • 二叉搜索树介绍与实现
  • 学习笔记——Test.pwn
  • 众数信科荣登“2024 CHINA AIGC 100”榜单
  • 设定义结构变量
  • C++中list的使用及模拟实现
  • 软件安全开发生命周期(Software Security Development Lifecycle, SSDLC)模型
  • 外贸CRM系统功能解析_如何挑选最适合的软件
  • DEV C++自动补全文件头的设置操作
  • LC1523.在区间范围内统计奇数数目
  • 111 - exercise 5
  • 【时时三省】(C语言基础)函数介绍strncmp
  • Vue详细入门(语法【三】)
  • kafka入门
  • 计算机网络架构实例