云莉的技术专题

分治、回溯

2020-03-29  本文已影响0人  云莉6

分治和回溯本质上都是递归。

分治 Divide & Conquer

分治代码模版

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_result(subresult1, subresult2, subresult3, ...)
    # revert the current level states

回溯 Backtracking

上一篇 下一篇

猜你喜欢

热点阅读