设有A,B,C,D,E五人从事J1,J2,J3,J4,J5五项工作,每人只能从事一项,他们的效益如下:
每人选择五项工作中的一项,在各种选择的组合中,找到效益最高的的一种组合输出。
算法分析:
(1)用数组f储存工作选择的方案;数组g存放最优的工作选择方案;数组p用于表示某项工作有没有被选择了。
(2)
- 选择p(i)=0的第i项工作;
- 判断效益是否高于max已记录的效益,若高于则更新g数组及max的值。
(3)搜索策略: 回溯法(深度优先搜索dfs)。
参考代码:
设有A,B,C,D,E五人从事J1,J2,J3,J4,J5五项工作,每人只能从事一项,他们的效益如下:
每人选择五项工作中的一项,在各种选择的组合中,找到效益最高的的一种组合输出。
算法分析:
(1)用数组f储存工作选择的方案;数组g存放最优的工作选择方案;数组p用于表示某项工作有没有被选择了。
(2)
(3)搜索策略: 回溯法(深度优先搜索dfs)。
参考代码: