分治 && 遞迴
阿新 • • 發佈:2020-10-18
重複性 重複性 重複性
找重複性、分解問題、然後解決問題
組合子問題
分治 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