流水作业调度算法中某结构的排序。
一个作业有2个任务a和b,在流水作业调度算法中使用了Johnson不等式,即min(a2,b1)>=min(a1,b2)时,则作业1在2之前。传统的算法中是这样实现,使用2N的数组容纳a1,a2,...,an,b1,b2,...bn,然后排序。再一个个分别查找最小的值是a还是b,如果是a就把对应的作业放在前面,如果是b就放在最后面。
我想能否简化点,直接对数据结构排序,比如使用结构pair<int,int>的数组保存所有作业,使用C库qsort,直接对这个结构的数组使用排序规则min(a2,b1)>=min(a1,b2),
自己想了下,这个规则具有传递性,即如果1和2满足规则,2和3也满足,则1和3之间也满足这个条件,
请问下,这个做法正确嘛?和传统的做法是不是一个效果?