算法: 找子集合并按权值和排序 (货郎问题辅助算法) (二)

2014-11-24 11:49:50 · 作者: · 浏览: 33
System.exit(-1); // Not allow equal elements
}

if ( pos == 0 ) {// that means current element is less that any in selects, we won't need to consider this elem
remains.remove(0);
continue;
}
else {
int insert_pos = pos-1;
remains.set(0,selects.get(insert_pos));
selects.set(insert_pos, cur);
System.out.print(" an select ---");
print(selects);
return true;
}
}
return false;
}

void selectAll() {
while (selectNext())
;
}


static void print(ArrayList list ) {
int sum = 0;
for (int i=0; i< list.size(); i++) {
sum += list.get(i);
System.out.print( " " + list.get(i));
}
System.out.println(" sum:"+sum );
}

public static void main(String[] args) {
NextWeighSum m = new NextWeighSum();
m.init();
m.selectAll();
}

}

这个算法打算在 "货郎问题" 中使用, 货郎问题是选择权值和最小的边集合,试探是否其构成路径. 构成则问题解决,否则试探下一个.