美文网首页
分治算法

分治算法

作者: 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,如何进行排序呢?

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

    相关文章

      网友评论

          本文标题:分治算法

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