java
public void divideConquer(problem, param1, param2,...) {
// 递归的终止条件
if (problem != None) {
return result;
}
// 准备数据
data = prepareData(problem);
// 分割子问题
subProblem = splitProblem(problem, data);
// 处理子问题
subResult1 = divideConquer(subProblem[0], param1, param2,...);
subResult2 = divideConquer(subProblem[0], param1, param2,...);
subResult3 = divideConquer(subProblem[0], param1, param2,...);
...
// 合并结果
processResult(subResult1, subResult2, subResult3,...);
// 清理当前状态集
}