美文网首页
2. Divide-and-Conquer

2. Divide-and-Conquer

作者: MangoDai | 来源:发表于2017-09-18 19:54 被阅读0次

Core

  1. 把一个大问题划分成诺干个子问题(子问题之间相互独立)
  2. 解决每个子问题
  3. 把每个子问题合并到一起

Optimization Method

  1. Reduce the sub Question
    通过代数消除子问题的个数
    XY = ?
    X = A2^(n/2) + B
    Y = C2^(n/2) + D
    XY = AC2^(n/2) + (AD+BC)2^(n/2) + BD
    AD+BC = (A-B)(D-C) + AC + BD
    
    AC, BD 被复用
    时间复杂度从:
    c 是常数
    W(n) = 4W(n/2) + cn 
    W(n) = 3W(n/2) + cn
    
  2. Pretreatment before inner Recursion
    通过预处理减少内部的递归计算了,实际是空间换时间

经典例题

快速排序的实现

相关文章

  • 2. Divide-and-Conquer

    Core 把一个大问题划分成诺干个子问题(子问题之间相互独立) 解决每个子问题 把每个子问题合并到一起 Optim...

  • algorithms-ch2-divide and conque

    The divide-and-conquer strategy solves a problem by: Brea...

  • O(n log n) - Merge Sort

    Merge Sort is based on the divide-and-conquer paradigm. M...

  • Merage Sort以及两道leetCode的相关问题

    merage sort Divide-and-conquer merge sort 的核心理念是 Divide-a...

  • 算法面经--归并排序

    归并排序(递归合并) 一、算法思路 该算法采用经典的分治(****divide-and-conquer) 策略(分...

  • 排序O(n), 2022-06-15

    (2022.06.15 Wed)基于divide-and-conquer范式的快速排序、递归排序都达到了基于比较法...

  • O(n log n) - Quick Sort

    From wiki:快速排序使用 divide-and-conquer 策略来把一个序列分为两个子序列(sub-l...

  • 分治算法

    Divide-and-Conquer算法的设计 设计过程分为三个阶段: Divide:整个问题划分为多个子问题 C...

  • 递归与分治

    一、分治 分治( Divide-and-Conquer )及分而治之,就是把一个较为复杂的问题分成多个规模较小但结...

  • 分治法(Divide-and-Conquer Algorithm

    上次给大家带来了分治法的基本介绍和基本思想,今天我们继续来看分治算法的几个经典例子。 **01 ** 快速排序 1...

网友评论

      本文标题:2. Divide-and-Conquer

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