zoukankan      html  css  js  c++  java
  • 分治 & 回溯 肌肉记忆

    重复性 重复性 重复性

    找重复性、分解问题、然后解决问题

    组合子问题

    分治 DIvider & Conquer

    python

    def divide_conquer(problem, param1, param2, ...) {
          # recursion terminator 
          if problem is None:
                print_result;
                return;
          # prepare data
          data = prepare_data(problem);
          subproblems = split_problem(problem, data);
          # conquer subproblems
          subresult1 = self.divide_conquer(subproblems[0], p1, ...);
          subresult2 = self.divide_conquer(subproblems[1], p1, ...);
          subresult3 = self.divide_conquer(subproblems[2], p1, ...);
          ...
          # process and generate the final result
          result = process(subresult1, subresult2, subresult3., ..);
    }
    

    javascript

    function divide_conquer(problem, param1, param2) {
      // recursion terminator
      if (problem === null) {
        process result;
        return;
      }
    
      // prepare data
      data = preprare_data(problem);
      subproblems = split_problem(problem, data);
    
      // conquer subproblems
      subresult1 = self.divide_conquer(subproblems[0], p1, ...);
      subresult2 = self.divide_conquer(subproblems[1], p1, ...);
      subresult3 = self.divide_conquer(subproblems[2], p1, ...);
    
      // process and generate the final result
      result = process_result(subresult1, subresult2, subresult3);
    
      // revert the current level status
    

    回溯

    回溯法采用试错的思想,它尝试分步骤的去解决一个问题,在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确解答的时候,它将取消上一步甚至是上几步的计算,再通过其他的可能的分步解答再次尝试寻找问题的答案。

    回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情况:

    • 找到一个可能存在的正确的答案
    • 在尝试了所有可能的分步方法后宣告该问题没有答案
      在最坏的情况下,回溯法会导致一次复杂度为指数时间的计算。
  • 相关阅读:
    转!!CSRF攻击与防御(写得非常好)
    quartz集群 定时任务 改成可配置
    原!!将集合分段处理
    CentOS 6.5 下安装 Redis 2.8.7
    四层和七层负载均衡的区别介绍(转载)
    使用中值滤波原理过滤异常数据
    ThinkPHP5 <= 5.0.22 远程代码执行高危漏洞
    ThinkPHP 小于5.0.24 远程代码执行高危漏洞 修复方案
    nginx 下载 大文件被截断
    mysql 存储过程 有数据修改 没数据插入
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13835267.html
Copyright © 2011-2022 走看看