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
    

    回溯

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

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

    • 找到一个可能存在的正确的答案
    • 在尝试了所有可能的分步方法后宣告该问题没有答案
      在最坏的情况下,回溯法会导致一次复杂度为指数时间的计算。
  • 相关阅读:
    ajax获取数据中文乱码问题最简单的完美解决方案
    修改easyui默认datagrid的表格内字体大小,样式
    setTimeout延迟加载方法的使用
    解决java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList的问题
    模块和包
    常用模块
    匿名函数及推导式
    python-迭代器和生成器
    python-内置函数
    python-递归
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13835267.html
Copyright © 2011-2022 走看看