zoukankan      html  css  js  c++  java
  • 贪心算法和动态规划以及分治法的区别?

    贪心算法顾名思义就是做出在当前看来是最好的结果,它不从整体上加以考虑,也就是局部最优解。贪心算法从上往下,从顶部一步一步最优,得到最后的结果,它不能保证全局最优解,与贪心策略的选择有关。

    动态规划是把问题分解成子问题,这些子问题可能有重复,可以记录下前面子问题的结果防止重复计算。动态规划解决子问题,前一个子问题的解对后一个子问题产生一定的影响。在求解子问题的过程中保留哪些有可能得到最优的局部解,丢弃其他局部解,直到解决最后一个问题时也就是初始问题的解。动态规划是从下到上,一步一步找到全局最优解。(各子问题重叠)

    分治法(divide-and-conquer):将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解。(各子问题独立)

    分治模式在每一层递归上都有三个步骤:

    分解(Divide):将原问题分解成一系列子问题;
    解决(conquer):递归地解各个子问题。若子问题足够小,则直接求解;
    合并(Combine):将子问题的结果合并成原问题的解。

    例如归并排序

    原文链接:https://blog.csdn.net/weixin_40852935/article/details/104819348

  • 相关阅读:
    关于网页代码加密解密保护,保障页面安全
    DS--知识积累
    知识积累
    Nested DollsHDU1677
    CF335B
    HDU2385Stock
    滚动数组处理数据很大的公共子序列问题
    HDU4635
    HDU4638
    HDU4639
  • 原文地址:https://www.cnblogs.com/xiaxiaopi/p/14484790.html
Copyright © 2011-2022 走看看