美文网首页
分治算法

分治算法

作者: huyongming | 来源:发表于2020-11-20 20:37 被阅读0次

文章结构

  1. 如何理解分治算法
  2. 分治算法应用举例

1. 如何理解分治算法

1.1 分治算法的核心思想

分治算法的核心思想简单来说就四个字,分而治之。也就是将一个大的问题分解成多个规模较小但是结构相似的子问题,递归的解决这些子问题,然后合并这些子问题的解来得到原问题的解。

1.2 分治算法的递归实现思路

分治算法一般比较适合用递归来实现。分治算法的递归实现,每一层都涉及这样三个操作:

  1. 分解:将原问题分解成一些列的子问题
  2. 解决:递归的求解各个子问题,若子问题足够小,则直接求解
  3. 合并:将子问题的解合并成原问题的解

1.3 什么样的问题适合用分治思想来解决

  1. 一个问题能够分解成多个结构相似、规模较小的子问题
  2. 子问题要能够独立求解,彼此之间没有相关性
  3. 问题分解要有终止条件,也就是当问题足够小的时候,可以直接解决
  4. 合并子问题的解的复杂度不能太高,否则就起不到减少算法总体复杂度的效果

2. 分治算法应用举例

2.1 归并排序

归并排序就是典型的分治思想应用。归并排序的思想就是:先将要排序的数据分成两个部分,先对这两个部分进行排序,然后再将排好序的两个有序序列进行合并。

2.2 海量数据排序

假设有10GB的订单文件需要按照金额进行排序,而能够使用的及其内存只有2、3个GB,如何进行排序呢?

可以先将这些数据分成多份,然后将每一份数据单独调入内存进行排序,待每份数据都排好序之后。在将这些数据合并成一个有序序列。

相关文章

  • 分治算法

    文章结构 如何理解分治算法 分治算法应用举例 1. 如何理解分治算法 1.1 分治算法的核心思想 分治算法的核心思...

  • 算法导论第2.3章 - 分治算法

    分治算法 递归:算法一次或多次递归地调用其自身已解决紧密相关的若干子问题。这些算法遵循分治法的思想。 分治算法三个...

  • 从分治算法到 MapReduce

    从分治算法说起 要说 MapReduce 就不得不说分治算法,而分治算法其实说白了,就是四个字 分而治之 。其实就...

  • Leetcode-Java(二十五)

    241. Different Ways to Add Parentheses 采用分治算法,分治算法的基本思想是将...

  • 09《算法入门教程》分治算法

    1. 前言 本节内容是分治算法系列之一:分治算法的介绍,主要介绍了分治算法的定义及基本思想和实现策略,然后我们介绍...

  • 分治算法

    理解分治算法 分而治之

  • 分治算法

    分治是一种思想体现,就是把一个大的问题分为若干个子问题,这些子问题相互独立且与原问题性质相同然后在子问题继续向下分...

  • 分治算法

    分治算法字面意思就是将一个复杂的数据进行分开计算,分治 的策略就是: 一个分治法将规模为n的问题分成k个规模为n/...

  • 分治算法

    http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741...

  • 分治算法

    分冶算法的基本思想是将原问题分解为几个规模较小的但类似原问题的子问题,递归地求解这些了问题,然后再合并这些子问题的...

网友评论

      本文标题:分治算法

      本文链接:https://www.haomeiwen.com/subject/plejiktx.html